在Word和PowerPoint中,只能使用VBA为名称指定一个形状(与Excel中您可以在公式栏中执行此操作的对比)。
Word不会强制形状具有唯一的名称,因此可能有两种形状,分别命名为Text Box 2
。您也可以通过ActiveDocument.Shapes
集合中的索引位置来引用形状。
一旦你确定你需要什么Shape
的工作,那么你可以简单地操纵.TextFrame.TextRange.Text
属性:
Sub Test()
Dim shp As Shape
Dim str As String
For Each shp In ActiveDocument.Shapes
str = "My name is " & shp.Name
str = str & vbNewLine & "My EditID is " & shp.EditID
shp.TextFrame.TextRange.Text = str
Next
End Sub
一个你可能会考虑其他的事情是增加一个AlternativeText
属性为每个形状。当然,这并没有解决“非唯一性”的问题,但你可以使用这个(或CustomerData/CustomXMLParts
分配一些元到形状,作为识别和区分他们的另一手段。