Partager via


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.