Visio (的 Shapes.Item 屬性)
會傳回集合中的某個項目。 Item屬性是所有集合的預設屬性。 唯讀。
語法
運算式。專案 (NameUIDOrIndex)
expression 代表 Shapes 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
NameUIDOrIndex | 必要 | Variant | 包含要擷取的物件之名稱、唯一識別碼或索引。 |
傳回值
圖形
註解
從集合擷取物件時,您可以省略運算式中的 Item ,因為它是所有集合的預設屬性。 下列語句相當於上面提供的語法範例:
objRet = object(index)
objRet = object(stringExpression)
您可以在 Addons、Documents、Fonts、Hyperlinks、Layers、Masters、MasterShortcuts、OLEObjects、Pages、Shapes 或 Styles 集合中擷取物件,透過的方式是將該物件的名稱傳遞為 Variant 中的字串運算式。
如果您依名稱擷取 Shape 物件,除了集合的包含圖形之外, Item 屬性還會搜尋 Shapes 集合包含頁面或包含主圖形中的所有圖形。 因此,Item屬性傳回的Shape物件可以是不在Shapes集合中的圖形。
您也可以將 Master 或 Shape 物件的唯一識別碼字串傳遞給 Item 屬性。 例如:
objRet = vsoShapes.Item("{2287DC42-B167-11CE-88E9-0020AFDDD917}")
如果將這類字串傳遞至Shapes集合的Item屬性,則會搜尋集合中包含的所有圖形。 不會搜尋包含圖形中群組圖形內的圖形。
若要搜尋此集合中的所有圖形,以及在群組內的圖形與此集合的包含圖形中搜尋,請在唯一識別碼字串中加上星號 (*) 當做首碼。 例如:
objRet = vsoShapes.Item("*{2287DC42-B167-11CE-88E9-0020AFDDD917}")
如需將識別碼字串傳遞至 Item 屬性的詳細資訊,請參閱本參考中 UniqueID 屬性的主題。
範例
這個 Microsoft Visual Basic for Applications (VBA) 宏會示範如何使用Item屬性,從使用中檔的Pages集合,以及 Page 物件的Shapes集合中的所有Shape物件取得Page物件。 它會在 [即時運算] 視窗中列印第 1 頁上所有圖形的名稱。
在執行這個巨集之前,請確定使用中的文件在第 1 頁上有圖形。
Public Sub Item_Example()
Dim intCounter As Integer
Dim intShapeCount As Integer
Dim vsoShapes As Visio.Shapes
Set vsoShapes = ActiveDocument.Pages.Item(1).Shapes
Debug.Print "Shape Name List For..."
Debug.Print "Document: "; ActiveDocument.Name
Debug.Print "Page: "; ActiveDocument.Pages.Item(1).Name
intShapeCount = vsoShapes.Count
If intShapeCount > 0 Then
For intCounter = 1 To intShapeCount
Debug.Print " "; vsoShapes.Item(intCounter).Name
Next intCounter
Else
Debug.Print " No Shapes On Page"
End If
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。