Page.DropManyLinkedU-Methode (Visio)

Erstellt mehrere neue Shapes auf dem Zeichenblatt, die mit mehreren Datenzeilen in einem Datenrecordset verknüpft sind. Gibt die Anzahl der erstellten Shape-Instanzen und ein Array von IDs dieser Shapes zurück.

Hinweis

Dieses Visio-Objekt oder dieses Visio-Mitglied ist nur für lizenzierte Benutzer von Visio Professional 2013 verfügbar.

Syntax

Ausdruck. DropManyLinkedU( _ObjectsToInstance()_ , _XYs()_ , _DataRecordsetID_ , _DataRowIDs()_ , _ApplyDataGraphicAfterLink_ , _ShapeIDs()_ )

Ausdruck Ein Ausdruck, der ein Page-Objekt zurückgibt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
ObjectsToInstance() Erforderlich Variant Ein Array vom Typ Variant mit Objekten, für die Instanzen erstellt werden sollen.
XY() Erforderlich Double Ein Array vom Typ Double
DataRecordsetID Erforderlich Long Die ID des Datenrecordsets, das die zu verknüpfenden Datenzeilen enthält.
DataRowIDs() Erforderlich Long Ein Array vom Typ Long mit IDs der Datenzeilen, die die zu verknüpfenden Daten enthalten.
ApplyDataGraphicAfterLink Erforderlich Boolean Gibt an, ob die aktuelle Datengrafik auf die verknüpften Shapes angewendet werden soll. Weitere Informationen finden Sie in den Anmerkungen.
ShapeIDs() Erforderlich Long Ausgabeparameter. Ein Array vom Typ "Long " mit Formen, die erstellt und mit denen Sie verknüpft sind.

Rückgabewert

Long

Hinweise

Wenn Sie Shapes erstellen möchten, die bereits mit Daten auf einem Zeichenblatt verknüpft sind, das entweder keine Shapes oder andere Shapes als die zu verknüpfenden enthält, können Sie die Methoden Page.DropLinked und Page.DropManyLinkedU verwenden, um ein oder mehrere zusätzliche Shapes zu erstellen, die bereits mit Daten verknüpft sind. Diese Methoden ähneln den vorhandenen Page.Drop - und Page.DropManyU-Methoden insofern, als sie zusätzliche Formen an einer bestimmten Stelle auf dem Zeichenblatt erstellen. Darüber hinaus erstellen sie aber auch Verknüpfungen zwischen den neuen Shapes und den angegebenen Datenzeilen in einem angegebenen Datenrecordet.

Übergeben Sie für den ObjectsToInstance()-Parameter ein Array mit Objekten, die zu mit Daten verknüpften Shapes instanziiert werden sollen. Während diese Objekte in der Regel Visio-Objekte sind, z. B. Master-, Shape- oder Selection-Objekte , kann es sich um beliebige OLE-Objekte handeln, die eine IDataObject-Schnittstelle bereitstellen.

Übergeben Sie für den XYs()-Parameter ein Array vom Typ Double. Jedes aufeinanderfolgende Paar von Array-Index-Positionswerten sollte den x- und y-Seitenkoordinaten entsprechen, an denen die Instance des Objekts an der entsprechenden Position im ObjectsToInstance()-Array positioniert werden soll. Wenn Sie zum Beispiel möchten, dass die Instanz des Objekts an der ersten Array-Indexposition in ObjectsToInstance() an der Seitenkoordinate (2,4) positioniert wird, platzieren Sie den Wert 2 an der ersten Array-Indexposition in XYs() und platzieren Sie den Wert 4 an der zweiten Array-Indexposition in diesem Array usw. für die restlichen Objekte und Koordinaten.

Wenn ein Objekt, das Sie im Array ObjectsToInstance() übergeben, eine Form ist, wird die Mitte des Felds Breite-Höhe der Form an den Koordinaten positioniert, die Sie in XYs() angeben.

Wenn ein im ObjectsToInstance()-Array übergebenes Objekt ein Master-Objekt ist, wird der Drehbezugspunkt des Masters bei den unter XYs() angegebenen Koordinaten positioniert. Der Drehbezugspunkt eines Masters ist häufig der Mittelpunkt der Drehung, aber nicht notwendigerweise.

Übergeben Sie für den DataRowIDs()-Parameter ein Array mit Long-Werten. Diese Werte stellen die IDs der Datenzeilen im Datenrecordset dar, die mit den Shape-Instanzen verknüpft werden sollen, die aus den Objekten an den entsprechenden Array-Indexpositionen im Array ObjectsToInstance() erstellt wurden.

Übergeben Sie für den Parameter ShapeIDs() ein leeres Array ohne Dimensionen vom Typ Long. Die Methode gibt das Array zurück, das die IDs der neu erstellten und verknüpften Shapes enthält.

Hinweis

Ab Microsoft Visio 2000 können Sie sowohl lokale als auch universelle Namen verwenden, um auf Shapes, Master-Shapes, Dokumente, Zeichenblätter, Zeilen, Add-Ons, Zellen, Hyperlinks, Formatvorlagen, Schriftarten, Master-Shape-Verknüpfungen, Benutzeroberflächenobjekte und Layer von Visio zu verweisen. Wenn ein Benutzer beispielsweise einem Shape einen Namen benennt, gibt er damit einen lokalen Namen an. Seit Microsoft Office Visio 2003 zeigt die ShapeSheet-Tabelle nur universelle Namen in Zellformeln und Werten an. (In früheren Versionen von Visio waren universelle Namen auf der Benutzeroberfläche nicht sichtbar.) Als Entwickler können Sie universelle Namen in einem Programm verwenden, wenn Sie einen Namen nicht jedes Mal ändern möchten, wenn eine Lösung lokalisiert wird. Verwenden Sie die DropManyLinkedU-Methode, um mehrere mit Daten verknüpfte Shapes abzulegen, wenn Sie zum Identifizieren der Shapes universelle Namen verwenden.

Beispiel

Das folgende Microsoft Visual Basic for Applications (VBA)-Makro zeigt, wie Sie mithilfe der DropManyLinkedU-Methode mehrere Shapes auf dem aktiven Zeichenblatt erstellen, die an den angegebenen Koordinaten zentriert sind und mit einer Datenzeile in dem Datenrecordset verknüpft sind, das dem aktiven Dokument zuletzt hinzugefügt wurde. Es zeigt die Anzahl der erstellten Shapes und ihre ID-Nummern im Direktfenster an.

Die Shapes, die an die DropManyLinkedU-Methode übergeben werden, sind einfache Formen aus der Schablone "Standard-Shapes (US-Einheiten) ". Verwenden Sie vor dem Ausführen dieses Makros die DataRecordsets.Add-Methode oder eine andere Möglichkeit, um der DataRecordsets-Auflistung mindestens einen Datenrecordset hinzuzufügen, und stellen Sie sicher, dass die Schablone "Standard-Shapes (US-Einheiten)" im Visio-Zeichnungsfenster geöffnet ist.

Sub DropManyLinkedU_Example() 
 
    Dim avarObjects(0 To 2) As Variant 
    Dim adblXYs(0 To 5) As Double   
    Dim alngDataRowIDs(0 To 2) As Long 
    Dim alngShapeIDs() As Long 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intRecordsetCount As Integer 
    Dim lngReturned As Long 
    Dim intCounter As Integer 
     
    intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count 
    Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount) 
     
    Set avarObjects(0) = Visio.Documents("Basic_U.VSS").Masters("Rectangle") 
    Set avarObjects(1) = Visio.Documents("Basic_U.VSS").Masters("Triangle") 
    Set avarObjects(2) = Visio.Documents("Basic_U.VSS").Masters("Circle") 
     
    adblXYs(0) = 2 
    adblXYs(1) = 2 
    adblXYs(2) = 4 
    adblXYs(3) = 4 
    adblXYs(4) = 6 
    adblXYs(5) = 6 
         
    alngDataRowIDs(0) = 1 
    alngDataRowIDs(1) = 2 
    alngDataRowIDs(2) = 3 
         
    lngReturned = ActivePage.DropManyLinkedU(avarObjects, adblXYs, vsoDataRecordset.ID, alngDataRowIDs, True, alngShapeIDs) 
    Debug.Print lngReturned 
     
    For intCounter = 0 To lngReturned - 1 
        Debug.Print alngShapeIDs(intCounter) 
    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.