1

我想设置文本框的名称,以便可以通过代码轻松访问它。 例如

我正在寻找与此类似的编辑字段

谢谢

4

2 回答 2

0

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

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

于 2015-07-02T08:03:30.103 回答
0

如果您真的想在 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 for 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:如果除了放置一些文本之外不需要做任何高级操作,您还可以尝试按照使用 Powershell 替换 Microsoft Publisher 中的文本来使用搜索和替换

编辑 3:给定您的问题的标题,除非您可以通过 Publisher 的界面解决问题,否则您可以使用 dim shape = Selection.ShapeRange.TextFrame.Parent 和 shape 设置所选文本框(或其他形状)的 .Name 属性.Name = "你的名字"。您可以使用 ActiveDocument.ActiveView.ActivePage.Name="your_name" 设置所选页面的名称。(创建一个提示您输入名称的 VBA 宏,您应该一切顺利)

于 2015-09-22T21:52:53.903 回答