Share via


Méthode Page.LinkShapesToDataRows (Visio)

Cette méthode lie plusieurs lignes du jeu d'enregistrements de données spécifié, comme indiqué par leur ID de ligne de données, à plusieurs formes sur la page. Elle applique éventuellement le graphique de données actuel aux 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. LinkShapesToDataRows( _DataRecordsetID_ , _DataRowIDs()_ , _ShapeIDs()_ , _ApplyDataGraphicAfterLink_ )

Expression Expression qui renvoie un objet Page .

Parameters

Nom Requis/Facultatif Type de données Description
DataRecordsetID Obligatoire Long ID d'un jeu d'enregistrements de données, contenu dans le document actif, qui contient les données à lier.
DataRowIDs() Obligatoire Long Tableau de type Long des ID de ligne de données des lignes dans le jeu d’enregistrements de données spécifié dans DataRecordsetID, à lier aux formes spécifiées dans ShapeIDs().
ShapeIDs() Obligatoire Long Tableau de type Long des ID de forme de formes de la page à lier aux lignes de données spécifiées dans DataRowIDs() dans le jeu d’enregistrements de données spécifié dans DataRecordsetID.
ApplyDataGraphicAfterLink Facultatif Boolean Spécifie si le graphique de données actuel doit être appliqué aux formes liées. Voir la section Remarques pour plus d'informations.

Valeur renvoyée

Aucune

Remarques

Les positions d’index des ID de forme dans le tableau que vous passez pour le paramètre ShapeIDs() doivent correspondre à la position d’index dans le tableau DataRowIDs() des ID des lignes de données auxquelles vous souhaitez lier les formes. Autrement dit, pour lier la forme avec l’ID 1 à la ligne de données avec l’ID 10 , par exemple, placez l’ID de forme et l’ID de ligne de données dans la même position d’index de tableau dans leurs tableaux respectifs.

Si Visio ne parvient pas à établir une liaison entre une forme et la ligne de données, il ignore cette forme et passe à la forme suivante dans le tableau. Après avoir exécuté la méthode, pour déterminer si toutes les formes du tableau sont réellement liées aux lignes de données spécifiées, appelez la méthode Shape.GetLinkedDataRow sur chaque forme du tableau. Si cette méthode échoue pour une forme, cela signifie que cette dernière n’est pas liée à la ligne de données. Visio réussit généralement à lier une ligne à une forme, sauf si la forme est déjà liée à des données et que le paramètre link-replacement-behavior pour le jeu d’enregistrements de données spécifie que le lien ne doit pas être remplacé.

Si vous passez true pour le paramètre facultatif ApplyDataGraphicAfterLink, ou si vous ne transmettez pas de valeur pour ce paramètre, Visio réapplique le graphique de données existant aux formes sur lesquelles des graphiques de données étaient déjà appliqués avant l’appel de la méthode. Pour les formes auxquelles aucun graphique de données n'a été appliqué, Visio applique le graphique de données dernièrement appliqué aux autres formes du document actif.

Exemple

La macro Microsoft Visual Basic pour Applications (VBA) suivante montre comment utiliser la méthode LinkShapesToDataRows pour lier les trois premières formes ajoutées à la page de dessin active aux données des trois premières lignes de données du jeu d’enregistrements de données récemment ajouté à la collection DataRecordsets du document actif. Dans la mesure où elle ne transmet aucune valeur pour le paramètre final facultatif, elle applique également un graphique de données aux formes liées.

Avant d’exécuter cette macro, ouvrez un nouveau dessin Visio et utilisez la méthode DataRecordsets.Add ou un autre moyen pour ajouter au moins un jeu d’enregistrements de données à la collection DataRecordsets . Le jeu d’enregistrements de données dernièrement ajouté doit contenir au moins trois lignes de données. Ajoutez ensuite trois formes à la page de dessin.

Public Sub LinkShapesToDataRows_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim alngDataRowIDs(0 To 2) As Long 
    Dim alngShapeIDs(0 To 2) As Long 
     
    alngShapeIDs(0) = 1 
    alngShapeIDs(1) = 2 
    alngShapeIDs(2) = 3 
     
    alngDataRowIDs(0) = 1 
    alngDataRowIDs(1) = 2 
    alngDataRowIDs(2) = 3 
         
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
     
    ActivePage.LinkShapesToDataRows vsoDataRecordset.ID, alngDataRowIDs, alngShapeIDs 
 
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.