Page.ShapeIDsToUniqueIDs-Methode (Visio)
Gibt ein Array eindeutiger IDs von Shapes auf dem Zeichenblatt zurück, wie durch ihre Shape-IDs angegeben.
Syntax
Ausdruck. ShapeIDsToUniqueIDs
( _ShapeIDs()_
, _UniqueIDArgs_
, _GUIDs()_
)
Ausdruck Ein Ausdruck, der ein Page-Objekt zurückgibt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
ShapeIDs() | Erforderlich | Long | Ein Array vom Typ Long von Shape-IDs, die einem Satz von Shapes auf dem aktiven Zeichenblatt entsprechen. |
UniqueIDArgs | Erforderlich | VisUniqueIDArgs | Dient zum Abrufen, Löschen oder Erstellen der eindeutigen ID eines Shape-Objekts. Mögliche Werte finden Sie in den Hinweisen. |
GUIDs() | Erforderlich | String | Ausgabeparameter. Ein leeres Array, das die Methode mit eindeutigen IDs vom Typ String füllt, die den in ShapeIDs() angegebenen Formen entsprechen. |
Rückgabewert
Nichts
Bemerkungen
Microsoft Visio identifiziert Shapes anhand von zwei verschiedenen IDs: Shape-IDs und eindeutigen IDs. Shape-IDs sind numerische Werte, durch die Shapes innerhalb des Bereichs eines einzelnen Zeichenblatts eindeutig identifiziert werden. In Bezug auf einen größeren Bereich sind sie jedoch nicht eindeutig.
Eindeutige IDs sind GUIDs (Globally Unique Identifier). Sie sind innerhalb des Anwendungsbereichs eindeutig.
Zum Konvertieren zwischen Form-IDs und eindeutigen IDs können Sie zwei Methoden des Page-Objekts verwenden: ShapeIDsToUniqueIDs und UniqueIDsToShapeIDs.
Standardmäßig verfügt ein Shape nicht über eine eindeutige ID. Ein Shape erhält nur dann eine eindeutige ID, wenn Sie seine Shape.UniqueID-Eigenschaft festlegen. Wenn ein Shape-Objekt eine eindeutige ID besitzt, hat kein anderes Shape in irgendeinem Dokument dieselbe ID.
Der UniqueIDArgs-Parameter dient zum Festlegen und Steuern des Verhaltens der UniqueID-Eigenschaft für alle Shapes in ShapeIDs(). UniqueIDArgs-Parameter sollten einen der folgenden Werte aufweisen, die in der Visio-Typbibliothek in VisUniqueIDArgs deklariert sind.
Konstante | Wert | Beschreibung |
---|---|---|
visGetGUID | 0 | Gibt die eindeutige ID-Zeichenfolge nur dann zurück, wenn das Shape bereits über eine eindeutige ID verfügt. Andernfalls wird eine leere Zeichenfolge ("") zurückgegeben. |
visGetOrMakeGUID | 1 | Gibt die eindeutige ID-Zeichenfolge des Shapes zurück. Wenn das Shape noch keine eindeutige ID besitzt, wird ihm eine zugewiesen, bevor die neue ID zurückgegeben wird. |
visDeleteGUID | 2 | Löscht die eindeutige ID eines Shapes und gibt eine leere Zeichenfolge ("") zurück. |
visGetOrMakeGUIDWithUndo | 3 | Gibt die eindeutige ID-Zeichenfolge des Shapes zurück. Wenn das Shape noch nicht über eine eindeutige ID verfügt, weist dem Shape eine zu und gibt die neue ID zurück. Nicht rückgängig. |
visDeleteGUIDWithUndo | 4 | Löscht die eindeutige ID eines Shapes und gibt eine leere Zeichenfolge ("") zurück. Nicht rückgängig. |
Beispiel
Das folgende VBA-Makro (Microsoft Visual Basic for Applications) zeigt, wie die ShapeIDsToUniqueIDs-Methode verwendet wird, um die eindeutigen IDs der Shapes auf dem An die -Methode übergebenen Zeichenblatt zu bestimmen. Es durchläuft alle Formen auf dem aktiven Zeichenblatt, wobei die Shape.UniqueID-Eigenschaft verwendet wird, um die Shape-IDs der Shapes abzurufen, und anschließend wird ein Array dieser IDs als ShapeIDsToUniqueIDs()-Parameter an die ShapeIDsToUniqueIDs-Methode übergeben, um die eindeutigen IDs der Shapes abzurufen. Für den UniqueIDArgs-Parameter übergibt er den Wert visGetOrMakeGUID und weist Visio an, eine eindeutige ID für jedes Shape zu erstellen, das noch keine hat. Es druckt die eindeutigen IDs und Shape-IDs im Direktfenster.
Öffnen Sie vor dem Ausführen dieses Makros eine Visio-Zeichnung, und platzieren Sie mehrere Shapes auf dem aktiven Zeichenblatt.
Public Sub ShapeIDsToUniqueIDs_Example()
Dim vsoShape As Visio.Shape
Dim intArrayCounter As Integer
intShapeCount = ActivePage.Shapes.Count
ReDim alngShapeIDs(intShapeCount - 1) As Long
ReDim astrUniqueIDs(intShapeCount - 1) As String
intArrayCounter = 0
For Each vsoShape In ActivePage.Shapes
alngShapeIDs(intArrayCounter) = vsoShape.ID
Debug.Print alngShapeIDs(intArrayCounter)
intArrayCounter = intArrayCounter + 1
Next
ActivePage.ShapeIDsToUniqueIDs alngShapeIDs, visGetOrMakeGUID, astrUniqueIDs
intArrayCounter = 0
For intArrayCounter = LBound(astrUniqueIDs) To UBound(astrUniqueIDs)
Debug.Print astrUniqueIDs(intArrayCounter)
Next
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.