Page.UniqueIDsToShapeIDs 方法 (Visio)

返回页面上形状的形状 ID 的数组,由其唯一 ID 指定。

注意

此 Visio 对象或成员仅供 Visio Professional 2013 的授权用户使用。

语法

expressionUniqueIDsToShapeIDs( _GUIDs()_ , _ShapeIDs()_ )

表达 返回 Page 对象的表达式。

参数

名称 必需/可选 数据类型 说明
GUID () 必需 字符串 一个由页面上形状的 String 类型的唯一 ID 组成的数组。
ShapeIDs () 必需 Long out 参数。 一个空数组,该方法将用与 GUIDs() 中指定的形状相对应的 Long 类型的形状 ID 来填充此数组。

返回值

Nothing

注解

Microsoft Visio 通过两种不同的 ID 来标识形状:形状 ID 和唯一 ID。 形状 ID 是数值,在单个绘图页的范围内对形状进行唯一标识。 不过,这些 ID 在更大的范围内并不是唯一的。

唯一 ID 是全局唯一标识符 (GUID)。 它们在应用程序范围内是唯一的。

要在形状 ID 和唯一 ID 之间进行转换,可以使用 Page 对象的两个方法:ShapeIDsToUniqueIDsUniqueIDsToShapeIDs

默认情况下,形状没有唯一 ID。 仅当设置了形状的 Shape.UniqueID 属性时,形状才会获取唯一 ID。

如果 Shape 对象具有唯一 ID,则任何其他文档中的任何其他形状都不具有相同的 ID。

示例

下面的 Microsoft Visual Basic for Applications (VBA) 宏演示如何使用 UniqueIDsToShapeIDs 方法来确定作为唯一 ID 传递给该方法的页面上的形状的形状 ID。 该宏将遍历活动绘图页上的所有形状,同时使用每个形状的 UniqueID 属性来获得形状的唯一 ID。 然后,它将这些唯一 ID 传递给 UniqueIDsToShapeIDs 方法,以返回形状的形状 ID。 它会将唯一 ID 和形状 ID 输出到“立即”窗口中。

在运行此宏之前,请打开一个 Visio 绘图,并在活动绘图页上放置若干形状。

Public Sub UniqueIDsToShapeIDs_Example() 
 
    Dim vsoShape As Visio.Shape 
    Dim intArrayCounter As Integer 
    Dim intShapeCount As Integer 
     
    intShapeCount = ActivePage.Shapes.Count 
     
    ReDim astrUniqueIDs(intShapeCount - 1) As String 
    ReDim alngShapeIDs(intShapeCount - 1) As Long 
     
    intArrayCounter = 0 
     
    For Each vsoShape In ActivePage.Shapes         
        astrUniqueIDs(intArrayCounter) = vsoShape.UniqueID(1) 
        Debug.Print astrUniqueIDs(intArrayCounter) 
        intArrayCounter = intArrayCounter + 1 
    Next 
    
    ActivePage.UniqueIDsToShapeIDs astrUniqueIDs, alngShapeIDs 
     
    intArrayCounter = 0 
 
    For intArrayCounter = LBound(alngShapeIDs) To UBound(alngShapeIDs) 
        Debug.Print alngShapeIDs(intArrayCounter) 
    Next 
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。