【问题标题】:How can i set the name of a textbox in publisher?如何在发布者中设置文本框的名称?
【发布时间】:2015-09-19 14:07:47
【问题描述】:

我想设置文本框的名称,以便代码可以轻松访问它。 e.g

我正在寻找类似于this的编辑字段

谢谢

【问题讨论】:

  • 1. 你怎么adddefine 文本框?作为一个形状然后addTextBox 或任何其他方式? 2.你用的是什么版本的Office?例如2010、2013、2003...3。您当前的 VBA 代码在哪里?
  • 1. 我正在使用功能区。 2. MS 2010 3. 在文件中
  • 我不明白您的问题,让我再次尝试解释我的问题。有没有办法在发布者中设置text box 的名称,就像我们可以通过键入here 来设置excel 中的范围名称一样
  • 设置名称后,我将使用 vba 访问它。

标签: vba textbox shape office-2013 ms-publisher


【解决方案1】:

UI 上的每个控件都有一个可以访问的属性窗口。在那里您可以重命名控件。 (因为您似乎还没有 VBA 代码,并且您想从 UI 重命名控件)

另一种选择。录制宏,对文本框进行一些更改(例如调整大小、更改文本等)。然后从 VBA 编辑器检查程序分配的文本框的默认名称。如您所说,您可以通过此默认名称访问控件并使用您的 VBA 代码(如您所说)重命名文本框。

【讨论】:

  • 这是我找不到那个属性窗口的问题
  • 问题是没有像在 Excel、Access 中那样直接访问 MS Publisher 中的属性的方法。也没有宏记录器。因此,您可以尝试使用 MS Word 宏记录器,看看效果如何。
  • 我使用了即时窗口? thisdocument.Selection.ShapeRange(1).Name,但现在我被发布者中的工作表对象困住了。我如何通过 VBA 编辑它。
  • thisdocument 不是指发布者中的当前文档吗?在 VBA 编辑器的模块或发布者文档中引用它,就像在 Excel 中为工作表或模块所做的那样。您在帖子开始时说您的目的是编写 VBA 代码。但是你知道如何在 VBA 中编写代码吗?
【解决方案2】:

如果您真的想在 Publisher 中编辑工作表对象,则必须获取 Shape 的 OLEobject 并将其解释为 Excel.Application。

如果您只是为 Publisher 文档寻找占位符解决方案,您可以简单地创建一个包含特定字符串的文本框,然后遍历所有页面、HasTextFrame = msoTrue 的每个页面上的所有形状,然后比较 shape.TextFrame。 TextRange.Text 到您的占位符字符串。如果它是您所追求的,您可以对相关形状做任何您想做的事情。

抱歉,您的回答含糊不清,但您的图片已无法使用。

编辑:您可以使用 Shape.Name 进行比较(您在评论中提到了此属性),但我不知道您如何在不使用 VBA 的情况下从界面设置值,因此,如果您正在制作模板,我上面概述的方法可能对用户来说更容易(请参阅 https://msdn.microsoft.com/EN-US/library/office/ff939233.aspx 了解 Shape.Name)。页面对象(https://msdn.microsoft.com/EN-US/library/office/ff940382.aspx)还有一个 .Name 属性,因此您应该能够执行 ActiveDocument.Pages("page_name").Shapes("shape_name").TextRange.Text = "your content" 一次您已经知道如何实际设置名称值

编辑 2: 如果除了放置一些文本之外您不需要做任何高级操作,您还可以尝试按照Replacing Text in Microsoft Publisher Using Powershell 使用搜索和替换

编辑 3:给定您的问题的标题,除非您可以通过 Publisher 的界面弄清楚一些事情,否则您可以使用暗淡形状 = Selection.ShapeRange.TextFrame 设置所选文本框(或其他形状)的 .Name 属性。父级和 shape.Name = "your_name"。您可以使用 ActiveDocument.ActiveView.ActivePage.Name="your_name" 设置所选页面的名称。 (创建一个提示您输入名称的 VBA 宏,您应该可以开始使用了)

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2011-10-15
    • 2021-07-13
    • 1970-01-01
    • 2023-04-09
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多