Page.UniqueIDsToShapeIDs 方法 (Visio)

傳回頁面上圖形識別碼的陣列,如其唯一識別碼所指定。

注意事項

This Visio object or member is available only to licensed users of Visio Professional 2013.

語法

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

表達 會傳回 Page 物件的運算式。

參數

名稱 必要/選用 資料類型 描述
GUID () 必要 字串 頁面上圖形之 String 類型的唯一識別碼陣列。
ShapeIDs () 必要 Long 輸出參數。 空陣列,由方法填入對應 GUIDs() 中所指定之圖形的 Long 類型圖形識別碼。

傳回值

註解

Microsoft Visio 會透過兩個不同的識別碼來識別圖形:圖形識別碼及唯一識別碼。 Shape IDs 是數字而且會唯一識別個別繪圖頁面範圍內的圖形。 然而,它們在較寬的範圍內就不是唯一的。

唯一標識 符是 (GUID) 的全域唯一識別碼。 它們在應用程式的範圍內是唯一的。

若要在圖形識別碼和唯一識別碼之間轉換,您可以使用 Page 物件的兩種方法: ShapeIDsToUniqueIDsUniqueIDsToShapeIDs

根據預設,圖形沒有唯一識別碼。 只有當您設定圖形的 Shape.UniqueID 屬性時,圖形才會取得唯一識別碼。

如果 Shape 物件有唯一識別碼,任何其他文件中的其他圖形都不會有相同的識別碼。

範例

下列 Microsoft Visual Basic for Applications (VBA) 宏會示範如何使用 UniqueIDsToShapeIDs 方法,以唯一識別碼形式決定傳遞至方法之頁面上圖形的圖形識別碼。 它會逐一查看使用中繪圖頁面上的所有圖形,並使用每個圖形的 UniqueID 屬性來取得圖形的唯一識別碼。 然後,它會將這些唯一識別碼傳遞給 UniqueIDsToShapeIDs 方法,以傳回圖形的圖形識別碼。 它會將唯一識別碼和圖形識別碼列印到 [即時運算] 視窗。

在執行這個巨集之前,請開啟 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 支援與意見反應