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.
XYs() 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 von Shapes, die erstellt und mit verknüpft sind.

Rückgabewert

Long

HinwBemerkungeneise

Wenn Sie Shapes erstellen möchten, die bereits mit Daten auf einem Zeichenblatt verknüpft sind, das entweder keine Shapes enthält oder andere Shapes enthält als die, die Sie verknüpfen möchten, 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 , da sie zusätzliche Shapes an einer angegebenen Position auf dem Zeichenblatt erstellen. Darüber hinaus erstellen sie Verknüpfungen zwischen den neuen Shapes und angegebenen Datenzeilen in einem angegebenen Datenrecordset.

Übergeben Sie für den ObjectsToInstance()-Parameter ein Array mit Objekten, die zu mit Daten verknüpften Shapes instanziiert werden sollen. Obwohl es sich bei diesen Objekten in der Regel um Visio-Objekte wie Master-, Shape- oder Selection-Objekte handelt, können sie alle OLE-Objekte sein, die eine IDataObject-Schnittstelle bereitstellen.

Übergeben Sie für den XYs()-Parameter ein Array vom Typ Double. Jedes aufeinander folgende Paar von Array-Index-Position-Werten sollte den x- und y-Seitenkoordinaten entsprechen, an denen die Instanz des Objekts an der entsprechenden Position im ObjectsToInstance()-Array positioniert werden soll. Wenn die Instanz des Objekts in der ersten Arrayindexposition in ObjectsToInstance() beispielsweise an der Seitenkoordinate (2,4) positioniert werden soll, platzieren Sie den Wert 2 in der ersten Arrayindexposition in XYs(), und platzieren Sie den Wert 4 an der zweiten Arrayindexposition in diesem Array usw. für die restlichen Objekte und Koordinaten.

Wenn ein Objekt, das Sie im ObjectsToInstance()-Array übergeben, eine Form ist, wird die Mitte des Felds breite/höhe des Shapes 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 z. B. ein Shape benennt, gibt der Benutzer einen lokalen Namen an. Ab Microsoft Office Visio 2003 zeigt das ShapeSheet-Arbeitsblatt 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 VBA-Makro (Microsoft Visual Basic for Applications) zeigt, wie Die DropManyLinkedU-Methode verwendet wird, um mehrere Formen auf dem aktiven Zeichenblatt zu erstellen, die an angegebenen Koordinaten zentriert und mit einer Datenzeile im Datenrecordset verknüpft sind, das dem aktiven Dokument zuletzt hinzugefügt wurde. Es gibt die Anzahl der erstellten Shapes und deren ID-Nummern im Direktfenster aus.

Die an die DropManyLinkedU-Methode übergebenen Formen sind einfache Formulare aus der Schablone "Basic Shapes (US units)" . Bevor Sie dieses Makro ausführen, verwenden Sie die DataRecordsets.Add-Methode oder eine andere Methode, um der DataRecordsets-Auflistung mindestens ein Datenrecordset hinzuzufügen, und stellen Sie sicher, dass die Schablone Grundlegende 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.