Shapes.Item 属性 (Visio)

从集合中返回一个项目。 Item 属性是所有集合的默认属性。 此为只读属性。

语法

表达式Item (NameUIDOrIndex)

expression:一个表示 Shapes 对象的变量。

参数

名称 必需/可选 数据类型 说明
NameUIDOrIndex 必需 Variant 包含要检索的对象的名称、唯一 ID 或索引。

返回值

Shape

说明

从集合中检索对象时,您可以省略表达式中的 Item,因为它是所有集合的默认属性。 下列语句等效于上面给出的语法示例:

objRet = object(index)  
objRet = object(stringExpression)

通过将对象名称作为 Variant 类型的字符串表达式来传递,您可以在 AddonsDocumentsFontsHyperlinksLayersMastersMasterShortcutsOLEObjectsPagesShapesStyles 集合中检索对象。

如果您按名称检索 Shape 对象,则 Item 属性除了在 Shapes 集合的包含形状中搜索形状外,还将在该集合的包含页面或包含主控形状中搜索所有形状。 因此,由 Item 属性返回的 Shape 对象可以是不在 Shapes 集合中的形状。

还可以将 MasterShape 对象的唯一 ID 字符串传递给 Item 属性。 例如:

objRet = vsoShapes.Item("{2287DC42-B167-11CE-88E9-0020AFDDD917}")

如果将此类字符串传递给 Shapes 集合的 Item 属性,则会搜索集合中包含的所有形状。 但不搜索包含形状中的组合形状中的形状。

要搜索集合中的所有形状以及组和集合的包含形状内的形状,请以星号 (*) 作为唯一 ID 字符串的前缀。 例如:

objRet = vsoShapes.Item("*{2287DC42-B167-11CE-88E9-0020AFDDD917}")

有关将 ID 字符串传递给 Item 属性的详细信息,请参阅此参考中的 UniqueID 属性的主题。

示例

此 Microsoft Visual Basic for Applications (VBA) 宏显示如何使用 Item 属性从活动文档的 Pages 集合获取 Page 对象,以及 Page 对象的 Shapes 集合中的所有 Shape 对象。 该宏在“立即”窗口中打印第一页上所有形状的名称。

运行此宏前,请确保活动文档在第一页上包含形状。

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 支持和反馈,获取有关如何接收支持和提供反馈的指南。