如何在发布者中设置文本框的名称?

时间:2015-07-02 07:16:16

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

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

我正在寻找类似于this

的编辑字段

由于

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

对于模糊的回答感到抱歉,但您的图片不再有用了。

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

编辑2: 如果您不需要执行除放置某些文本之外的任何其他操作,您还可以尝试按Replacing Text in Microsoft Publisher Using Powershell使用搜索和替换

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