Méthode Page.ShapeIDsToUniqueIDs (Visio)
Retourne un tableau d’ID uniques de formes sur la page, comme spécifié par leurs ID de forme.
Syntaxe
expression. ShapeIDsToUniqueIDs
( _ShapeIDs()_
, _UniqueIDArgs_
, _GUIDs()_
)
Expression Expression qui renvoie un objet Page .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
ShapeIDs() | Obligatoire | Long | Tableau de type Long d’ID de forme correspondant à un ensemble de formes sur la page de dessin active. |
UniqueIDArgs | Requis | VisUniqueIDArgs | Renvoie, supprime ou crée l'ID unique d'un objet Shape. Les valeurs possibles, reportez-vous à la section Remarques. |
GUID() | Requis | String | Paramètre sortant. Tableau vide que la méthode remplit avec des ID uniques de type String correspondant aux formes spécifiées dans ShapeIDs() |
Valeur renvoyée
Aucune
Remarques
Microsoft Visio identifie des formes par deux identificateurs différents : des identificateurs de forme et des identificateurs uniques. Les ID de forme sont des nombres qui identifient de façon unique les formes sur une page de dessin. Ils ne sont pas uniques au-delà d’une page.
Les ID uniques sont des identificateurs globaux uniques (GUID). Ils sont uniques au sein de l'application.
Pour effectuer une conversion entre les ID de forme et les ID uniques, vous pouvez utiliser deux méthodes de l’objet Page : ShapeIDsToUniqueIDs et UniqueIDsToShapeIDs.
Par défaut, une forme ne possède pas d’D unique. Une forme acquiert un ID unique uniquement si vous définissez sa propriété Shape.UniqueID . Si un objet Shape possède un ID unique, aucune autre forme de document n'aura le même ID.
Le paramètre ArgsIDUnique définit et contrôle le comportement de la propriété UniqueID de toutes les formes dans IDForme (). ArgsIDUnique doit disposer de l'une des valeurs ci-dessous déclarées dans la bibliothèque de types de Visio dans VisUniqueIDArgs.
Constante | Valeur | Description |
---|---|---|
visGetGUID | 0 | Ne renvoie la chaîne d'ID unique que si la forme possède déjà un ID unique. Dans le cas contraire, elle renvoie une chaîne de longueur nulle (""). |
visGetOrMakeGUID | 1 | Renvoie la chaîne d'ID unique de la forme. Si la forme n'a pas encore d'ID unique, elle lui en attribue un et renvoie le nouvel ID. |
visDeleteGUID | 2 | Supprime l'ID unique d'une forme et renvoie une chaîne de longueur nulle (""). |
visGetOrMakeGUIDWithUndo | 3 | Renvoie la chaîne d'ID unique de la forme. Si la forme n’a pas encore d’ID unique, affecte un à la forme et retourne le nouvel ID. Annulable. |
visDeleteGUIDWithUndo | 4 | Efface l’ID unique d’une forme et retourne une chaîne de longueur nulle (« »). Annulable. |
Exemple
La macro Microsoft Visual Basic pour Applications (VBA) suivante montre comment utiliser la méthode ShapeIDsToUniqueIDs pour déterminer les ID uniques des formes de la page passée à la méthode . Elle itère toutes les formes sur la page de dessin active, en utilisant la propriété Shape.UniqueID pour récupérer les ID de forme des formes, puis transmet un tableau de ces ID à la méthode ShapeIDsToUniqueIDs en tant que paramètre IDForme() pour obtenir les ID uniques des formes. Pour le paramètre UniqueIDArgs, il transmet la valeur visGetOrMakeGUID, indiquant à Visio de créer un ID unique pour toute forme qui n’en a pas encore. Elle affiche enfin les ID uniques et de forme dans la fenêtre Exécution.
Avant d'exécuter cette macro, ouvrez un dessin Visio, puis placez plusieurs formes sur la page de dessin active.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.