在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
分配一些元到形狀,作爲識別和區分他們的另一手段。