次の方法で共有


Page.UniqueIDsToShapeIDs メソッド (Visio)

一意の ID で指定された、ページ上の図形の図形 ID の配列を返します。

注:

この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。

構文

expression. UniqueIDsToShapeIDs( _GUIDs()_ , _ShapeIDs()_ )

Page オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
GUID() 必須 String ページ上の図形の String 型の、一意の ID の配列です。
ShapeIDs() 必須 Long 出力パラメーターです。 空の配列で、GUIDs() で指定された図形に対応する Long 型の図形 ID がメソッドによって入力されます。

戻り値

なし

解説

Microsoft Visio は、図形 ID と一意の ID の 2 つの ID によって図形を識別します。 図形 ID は、個々の図面ページ内で図形を一意に識別する数値です。 ただし、個々の図面ページの範囲外では、一意ではありません。

Unique IDs は、グローバルな一意識別子 (GUID) です。 こちらは、アプリケーションの範囲内で一意になります。

図形 ID と一意の ID の間で変換するには、 Page オブジェクトの ShapeIDsToUniqueIDsUniqueIDsToShapeID の 2 つのメソッドを使用できます。

既定では、図形には一意の 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 のサポートおよびフィードバックを参照してください。