Partager via


Selection.AutomaticLink, méthode (Visio)

Lie les formes sélectionnées avec des lignes de données dans le jeu d'enregistrements de données spécifié automatiquement, sans que vous ayez à spécifier la correspondance exacte entre toutes les formes et les lignes de données. Renvoie le nombre de formes liées.

Remarque

Cet objet ou ce membre Visio est disponible uniquement pour les titulaires d’une licence d’utilisation de Visio Professionnel 2013.

Syntaxe

expression. AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )

Expression Expression qui renvoie un objet Selection .

Parameters

Nom Requis/Facultatif Type de données Description
DataRecordsetID Obligatoire Long Valeur de la propriété ID de l’objet DataRecordset contenant les lignes de données avec lesquelles établir une liaison.
ColumnNames() Requis String Tableau de chaînes qui correspondent aux noms des colonnes dans le jeu d'enregistrements de données.
AutoLinkFieldTypes() Obligatoire Long Tableau de valeurs Long provenant de l’énumération VisAutoLinkFieldTypes, constitué de types d’attribut de forme. Au moins une position dans le tableau doit posséder une valeur correspondant aux valeurs à la même position dans les tableaux ColumnNames et FieldNames.
FieldNames() Requis String Tableau de chaînes qui représentent des valeurs de forme.
AutoLinkBehavior Obligatoire Long Combinaison d'une ou de plusieurs constantes à partir de l'énumération VisAutoLinkBehavior qui spécifie comment la liaison doit se produire. Les valeurs possibles, reportez-vous à la section Remarques.
ShapeIDs() Obligatoire Long Paramètre sortant. Tableau d'ID de formes (de type Long) qui ont été liés par la méthode.

Valeur renvoyée

Entier long

Remarques

Pour le paramètre NomsColonnes(), transférez un tableau de chaînes constitué de noms de colonnes dans la base de données. Au moins une position dans le tableau doit avoir une valeur qui correspond aux valeurs dans la même position dans les tableaux AutoLinkFieldTypes() et FieldNames().

Pour le paramètre TypesChampLienAuto(), transférez un tableau de valeurs Long depuis l’énumération VisAutoLinkFieldTypes, constitué de types d’attribut de forme. Parmi les attributs de forme énumérés se trouvent la hauteur, la largeur, le texte et le nom du maître dont provient la forme. Une position au moins dans le tableau doit posséder une valeur qui corresponde aux valeurs à la même position dans les tableaux NomsColonnes() et NomsChamps().

Pour le paramètre NomsChamps(), transférez un tableau de chaînes qui représente des valeurs de forme. Au moins une position dans le tableau FieldNames() doit avoir une valeur qui correspond aux valeurs situées à la même position dans les tableaux ColumnNames() et AutoLinkFieldTypes().

Pour la plupart des valeurs de AutoLinkFieldTypes(), par exemple, pour visAutoLinkShapeText, il n’est pas nécessaire de spécifier la valeur FieldNames() ; vous pouvez passer une chaîne vide à la place. Toutefois, lorsque vous transmettez les valeurs visAutoLinkCustPropsLabel, visAutoLinkUserRowName, visAutoLinkPropRowNameU ou visAutoLinkUserRowNameU d’AutoLinkFieldTypes, vous devez passer une valeur pour FieldNames() qui spécifie entièrement l’élément de données de forme (appelé valeur de propriété personnalisée dans certaines versions précédentes de Visio) à comparer au nom de la colonne de données.

Pour le paramètre ComportementLienAuto facultatif, vous pouvez transférer une combinaison d'une ou de plusieurs valeurs à partir de l'énumération VisAutoLinkBehaviors qui spécifie la manière dont la liaison doit se produire. Le tableau suivant montre les valeurs possibles.

Constante Valeur Description
visAutoLinkDontReplaceExistingLinks 16 Ne pas remplacer les liens existants.
visAutoLinkGenericProgressBar 2 Afficher la barre de progression générique au lieu d'une barre plus détaillée.
visAutoLinkIncludeHiddenProps 64 Inclure les propriétés masquées
visAutoLinkNoApplyDataGraphic 4 Ne pas appliquer le graphique de données par défaut aux formes liées.
visAutoLinkNullMatchesNoFormula 32 Autoriser le mappage des valeurs de base de données Null à « Aucune formule » dans la feuille de calcul Visio ShapeSheet.
visAutoLinkReplaceExistingLinks 8 Remplacer des liens existants.
visAutoLinkSelectedShapesOnly 1 Lier des formes sélectionnées uniquement, pas des formes secondaires de formes sélectionnées.

Vous ne pouvez pas transférer une valeur qui comprend visAutoLinkDontReplaceExistingLinks et visAutoLinkReplaceExistingLinks. La méthode retourne une erreur si vous tentez de le faire.

Si vous transférez une valeur pour ComportementLienAuto, elle modifie le comportement par défaut, qui se présente comme suit :

  • Utilisez le paramètre LinkReplaceBehavior du jeu d'enregistrements de données pour déterminer s'il convient de rompre des liens existants. Si ce paramètre est visLinkReplacePrompt, il est traité comme s'il s'agissait de visLinkReplaceAlways.

  • Liez les formes sélectionnées et leurs formes secondaires.

  • Ne remplacez pas la barre de progression détaillée par la barre de progression générique.

  • Appliquez des graphiques de données.

Pour le paramètre ShapeIDs(), passez un tableau vide sans dimension de type Long. Visio renvoie le tableau rempli avec les ID des formes qui ont été liées par la méthode aux données.

Pour fournir à Visio suffisamment d’informations pour créer les liens, vous devez fournir au moins un ensemble de données correspondantes : le nom d’une colonne dans le jeu d’enregistrements de données, un type d’attribut de forme et, si nécessaire, une valeur de forme, le tout à la même position d’index des tableaux correspondants que vous passez à la méthode. Le type d’attribut de forme indique l’attribut de la forme sur laquelle baser la correspondance. L’attribut peut être la valeur d’un élément de données de forme, d’un texte de forme ou d’une autre des valeurs spécifiées dans l’énumération VisAutoLinkFieldTypes .

Supposez, par exemple, que votre dessin contient une sélection de formes représentant des employés différents et que le texte de forme, qui affiche dans ce cas les noms des employés respectifs, identifie les formes. Comme l'illustre l'exemple contenu dans cette rubrique, vous transférez les paramètres suivants à la méthode :

  • Pour le paramètreNomsColonnes(), un tableau contenant le nom de colonne « NomEmployé » à la position 0 du tableau.

  • Pour le paramètre TypesChampLienAuto(), la valeur d'énumération visAutoLinkShapeText à la position 0 du tableau.

  • Pour le paramètre NomsChamps(), une chaîne vide (''") à la position 0 du tableau, car, lorsque TypesChampLienAuto() correspond à visAutoLinkShapeText, il n'est pas nécessaire de spécifier la valeur NomsChamps().

Exemple

La macro Microsoft Visual Basic pour Applications (VBA) suivante indique comment utiliser la méthode AutomaticLink pour lier automatiquement des formes d'un dessin à des données dans un jeu d'enregistrements de données. Elle lie des données d'employés contenues dans un jeu d'enregistrements de données à des formes du dessin dont le texte de forme correspond à des noms d'employés.

Avant d’exécuter cette macro, créez un jeu d’enregistrements de données qui contient une colonne nommée « NomEmployé », qui répertorie des noms d’employés, ainsi que toute autre colonne que vous voulez inclure, puis attribuez les noms d’employés en tant que texte de forme à des formes correspondantes dans votre dessin Visio. Utilisez la méthode DataRecordsets.Add pour ajouter le jeu d’enregistrements de données à la collection DataRecordsets du document actif. Vérifiez que le jeu d’enregistrements de données correspond au dernier qui a été ajouté à la collection.

Public Sub AutomaticLink_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim vsoSelection As Visio.Selection 
    Dim astrColumnNames(1) As String 
    Dim alngFieldTypes(1) As Long 
    Dim astrFieldNames(1) As String 
    Dim alngShapesLinked() As Long 
    Dim intCount As Integer 
     
    intCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intCount ) 
 
    astrColumnNames(0) = "EmployeeName" 
    alngFieldTypes(0) = Visio.VisAutoLinkFieldTypes.visAutoLinkShapeText 
    astrFieldNames(0) = "" 
 
    ActiveWindow.DeselectAll 
    ActiveWindow.SelectAll 
 
    Set vsoSelection = ActiveWindow.Selection 
    vsoSelection.AutomaticLink vsoDataRecordset.ID, _ 
                    astrColumnNames, _ 
                    alngFieldTypes, _ 
                    astrFieldNames, 0, alngShapesLinked 
 
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.