Table of contents
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

Master.DropMany-Methode (Visio)Master.DropMany Method (Visio)

office 365 dev account|Zuletzt aktualisiert: 06.03.2018
|
2 Mitarbeiter

Erstellt einen oder mehrere neue Shape -Objekte in einem Master-Shape. Es gibt ein Array der IDs die erzeugten Shape -Objekte.Creates one or more new Shape objects in a master. It returns an array of the IDs of the Shape objects it produces.

SyntaxSyntax

Ausdruck . DropMany ( ObjectsToInstance()-Array , xyArray() , IDArray() )expression . DropMany( ObjectsToInstance() , xyArray() , IDArray() )

Ausdruck Eine Variable, die ein Master -Objekt darstellt.expression A variable that represents a Master object.

ParameterParameters

NameNameErforderlich/OptionalRequired/OptionalDatentypData TypeBeschreibungDescription
ObjectsToInstance()-ArrayObjectsToInstance()ErforderlichRequiredVariantVariantEin Array, das die Master oder sonstigen Objekte identifiziert, aus denen die Shapes erstellt werden.An array that identifies masters or other objects from which to make shapes.
xyArray()xyArray()ErforderlichRequiredDoubleDoubleEin Array von wechselnden X- und Y-Werten, mit denen die Positionen der neuen Shapes angegeben werden.An array of alternating x and y values specifying the positions for the new shapes.
IDArray()IDArray()ErforderlichRequiredIntegerIntegerAusgabeparameter. Ein Array, das die IDs der erstellten Shapes zurückgibt.Out parameter. An array that returns the IDs of the created shapes.

RückgabewertReturn Value

IntegerInteger

BemerkungenRemarks

Verwendung der DropMany -Methode ähnelt dem Verwenden der SeiteMaster-Shape , oder Shape -Objekt Drop -Methode, es sei denn, Sie können die DropMany -Methode verwenden, um viele neue Shape -Objekte in einem Schritt statt eine pro-Methode erstellen Anruf. Die DropMany -Methode erstellt neue Shape -Objekte auf der Seite in das Master-Shape oder das Gruppen-Shape auf die angewendet (dieses Shape ist mit dem Namen "Ziel" in der folgenden Erläuterung).Using the DropMany method is like using the Page , Master , or Shape object's Drop method, except you can use the DropMany method to create many new Shape objects at once, rather than one per method call. The DropMany method creates new Shape objects on the page, in the master, or in the group shape to which it is applied (this shape is called the "target object" in the following discussion).

Sie können die Master-Shape, indem Sie der DropMany -Methode übergeben, Master -Objekts oder des Masters Index oder Name des Masters drop identifizieren. Wenn Sie ein Objekt übergeben, ist nicht DropMany ablegen beschränkt, nur ein Master-Shape von der Dokumentschablone des Dokuments auf das abgelegt wird. Das Objekt kann ein Master-Shape aus einem anderen Dokument oder einen anderen Typ des Objekts sein.You can identify which master to drop by passing the DropMany method a Master object or the master's index or the master's name. When you pass an object, DropMany isn't constrained to just dropping a master from the document stencil of the document onto which it is being dropped. The object can be a master from another document or another type of object.

Übergeben von Ganzzahlen (master Indizes) oder Zeichenfolgen (master Namen) an DropMany schneller als übergeben von Objekten ist, aber ganze Zahlen oder Zeichenfolgen können nur Master in der Dokumentschablone des Dokuments auf dem abgelegt werden bestimmen. Daher wird Ihr Programm aus irgendeinem Grund die Master-Shapes betreffenden in der Dokumentschablone in erster Linie abgerufen wurde, vorausgesetzt, dass sie es noch nicht vorhanden sind.Passing integers (master indices) or strings (master names) to DropMany is faster than passing objects, but integers or strings can identify only masters in the document stencil of the document onto which it is being dropped. Hence your program has to somehow get the masters in question into the document stencil in the first place, provided they weren't there already.

ObjectsToInstance()-Array sollte ein eindimensionales Array von n > = 1 Variant. Die Einträge identifizieren Sie Objekte aus denen Sie neue Shape -Objekte erstellen möchten. Ein Eintrag bezieht sich häufig auf Master-Shape -Objekt einer Microsoft Visio-Anwendung. Es kann sich auch um ein Shape -Objekt von Visio-Anwendung, Selection -Objekt oder ein Objekt aus einer anderen Anwendung handeln. Die Anwendung ist es unerheblich was die oberen und unteren Arraygrenzen der ObjectsToInstance()-Array Einträge sind. Rufen Sie diese Vlb bzw. Vub .ObjectsToInstance() should be a one-dimensional array of n >= 1 variants. Its entries identify objects from which you want to make new Shape objects. An entry often refers to a Microsoft Visio application Master object. It might also refer to a Visio application Shape object, Selection object, or even an object from another application. The application doesn't care what the lower and upper array bounds of the ObjectsToInstance() entries are. Call these vlb and vub , respectively.

  • ObjectsToInstance(i) ist einen Verweis auf ein OLE-Objekt, das eine IDataObject -Schnittstelle (in Microsoft Visual Basic for Applications, einen Verweis auf eine Auswahl, Shape, Master-, Handbuch oder OLE-Objekt) bereitstellt, das Objekt, auf das verwiesen wird platziert. Dies ist im Wesentlichen äquivalent zu aufrufende Drop((ObjectsToInstance(i),x,y) .If ObjectsToInstance(i) is a reference to an OLE object that provides an IDataObject interface (in Microsoft Visual Basic for Applications, a reference to a selection, shape, master, guide, or OLE object), the object it is referencing is instanced. This is essentially equivalent to calling Drop(ObjectsToInstance(i),x,y) .

  • Wenn ObjectsToInstance(i) die ganze Zahl j ist, erfolgt eine Instanz des Master -Objekts in der Dokumentschablone des Zielobjekts Dokument, dessen 1-basierter Indexwert j ist. Die Zelle EventDrop im Abschnitt Ereignisse des neuen Shapes wird nicht ausgelöst. Verwenden Sie die Drop -Methode, wenn sich die Zelle EventDrop ausgelöst werden soll.If ObjectsToInstance(i) is the integer j , an instance of the Master object in the document stencil of the target object's document whose 1-based index is j is made. The EventDrop cell in the Events section of the new shape is not triggered. Use the Drop method instead if you want the EventDrop cell to be triggered.

  • Wenn ObjectsToInstance(i) die Zeichenfolge s (oder einen Verweis auf die Zeichenfolge s ) ist, wird eine Instanz des Master -Objekts mit dem Namen s in der Dokumentschablone des Dokuments des Zielobjekts wird. s können entweder die Master-ShapeNamen oder der UniqueID -Eigenschaft des Objekts entspricht. Die Zelle EventDrop im Abschnitt Ereignisse des neuen Shapes wird nicht ausgelöst. Verwenden Sie die Drop -Methode, wenn sich die Zelle EventDrop ausgelöst werden soll.If ObjectsToInstance(i) is the string s (or a reference to the string s ), an instance of the Master object with name s in the document stencil of the target object's document is made; s can equal either the Master object's UniqueID or Name property. The EventDrop cell in the Events section of the new shape is not triggered. Use the Drop method instead if you want the EventDrop cell to be triggered.

  • Für Vlb < i <= Vub , wenn ObjectsToInstance(i) leer ist ( Nothing oder nicht initialisierte in Microsoft Visual Basic), Eintrag i verursacht ObjectsToInstance(j) zu erneut wobei j ist der größte Wert < i , ObjectsToInstance(j) nicht leer ist. Wenn Sie möchten n Instanzen von gleicher Bedeutung, muss nur ObjectsToInstance(vlb) bereitgestellt werden.For vlb < i <= vub , if ObjectsToInstance(i) is empty ( Nothing or uninitialized in Microsoft Visual Basic), entry i will cause ObjectsToInstance(j) to be instanced again, where j is the largest value < i such that ObjectsToInstance(j) isn't empty. If you want to make n instances of the same thing, only ObjectsToInstance(vlb) needs to be provided.

Der Parameter xyArray() soll ein eindimensionales Array von 2 m Werten mit untere Grenze Xylb und obere Grenze xyub sein , wobei m >= n . Die Werte im Array bestimmen, wo die erzeugten Shape -Objekte platziert für die DropMany -Methode. ObjectsToInstance ( Vlb + ( I - 1)) wird auf dem gelöscht ( Xy [( i - 1) 2 + Xylb ], Xy [(i-1) 2 + Xylb + 1]) für 1 < = i <= n .The xyArray() parameter should be a one-dimensional array of 2 m doubles with lower bound xylb and upper bound xyub , where m >= n . The values in the array tell the DropMany method where to position the Shape objects it produces. ObjectsToInstance( vlb + ( i - 1)) is dropped at ( xy [( i - 1)2 + xylb ], xy [(i - 1)2 + xylb + 1]) for 1 <= i <= n .

Beachten Sie m > n ist zulässig. Für n < i <= m , i ' instanziierte ist dasselbe wie die n ' instanziierte. So tätigen m > = 1 Instanzen von dasselbe, können Sie ein ObjectsToInstance()-Array mit einem Eintrag und ein m Eintrag xyArray() Array übergeben.Note that m > n is allowed. For n < i <= m , the i 'th thing instanced is the same thing as the n 'th thing instanced. Thus to make m >= 1 instances of the same thing, you can pass an ObjectsToInstance() array with one entry and an m entry xyArray() array.

Wenn die instanziierten Entität um ein Master-Shape ist, wird die Pin über das neue Shape -Objekt an die angegebenen Xy positioniert. Andernfalls ist die Mitte des Shape -Objekte in der angegebenen Xy positioniert.If the entity being instanced is a master, the pin of the new Shape object is positioned at the given xy . Otherwise, the center of the Shape objects is positioned at the given xy .

Der von der DropMany -Methode zurückgegebene Wert ist die Anzahl von Xy -Einträgen in xyArray() , die die DropMany -Methode erfolgreich verarbeitet. Wenn alle Einträge erfolgreich verarbeitet wurden, wird m zurückgegeben. Wenn einige Einträge vor einem Fehler erfolgreich verarbeitet wurden, die erzeugten Shape -Objekte werden nicht gelöscht, und Dies löst eine Ausnahme aus, aber weiterhin einen positiven Wert zurückgibt.The value returned by the DropMany method is the number of xy entries in xyArray() that the DropMany method successfully processed. If all entries were processed successfully, m is returned. If some entries are successfully processed prior to an error occurring, the produced Shape objects are not deleted and this raises an exception but still returns a positive value.

Wenn alle mXy Einträge richtig verarbeitet werden, entspricht die Anzahl der neuen Shape -Objekte, die von der DropMany -Methode erzeugt, in der Regel m . In seltenen Fällen (beispielsweise wenn ein Selection -Objekt instanziiert wird) können mehr als mShape -Objekte erstellt werden. Der Aufrufer kann die Anzahl der erzeugten Shape -Objekte ermitteln, durch die Anzahl von Shapes im Zielobjekt vor und nach der Ausführung der DropMany -Methode verglichen. Der Anrufer kann bestätigen, dass das neue Shape -Objekte mit der höchsten Indizes in das Zielobjekt Shapes -Auflistung sind.Presuming all mxy entries are processed correctly, the number of new Shape objects produced by the DropMany method is usually equal to m . In rare cases (for example, if a Selection object gets instanced), more than mShape objects may be produced. The caller can determine the number of produced Shape objects by comparing the number of shapes in the target object before and after the DropMany method is executed. The caller can assert the new Shape objects are those with the highest indices in the target object's Shapes collection.

Wenn die DropMany -Methode NULL (0) zurückgibt, gibt IDArray()null ( Nothing ) zurück. Andernfalls gibt es ein eindimensionales Array mit m ganzen Zahlen von 0 bis m - 1 indiziert. IDArray() ist ein Ausgabeparameter, der von der DropMany -Methode zugeordnet wird und dessen Besitz übergeben wird, um das Programm, das die DropMany -Methode aufgerufen. Der Aufrufer sollte zum Schluss die SafeArrayDestroy -Prozedur für das zurückgegebene Array ausführen. (Microsoft Visual Basic und Visual Basic für Applikationen übernehmen dies für Sie.)If the DropMany method returns zero (0), IDArray() returns null ( Nothing ). Otherwise, it returns a one-dimensional array of m integers indexed from 0 to m - 1. IDArray() is an out parameter that is allocated by the DropMany method and ownership is passed to the program that called the DropMany method. The caller should eventually perform the SafeArrayDestroy procedure on the returned array. (Microsoft Visual Basic and Visual Basic for Applications take care of this for you.)

Wenn IDArray() ungleich null (nicht Nothing ) IDArray( i - 1), 1 zurückgibt < = i <= IntReturned , gibt die ID des Shape -Objekts, die mit der i ' ten xyArray() _erzeugt wurde, sofern die _i ' xyArray() Eintrag genau ein Shape -Objekt erstellt. Wenn die i ' xyArray() Eintrag erzeugt mehrere Shape -Objekte, die in den Eintrag-1 zurückgegeben. Alle Einträge i , IntReturned <= i < m ,-1 zurück.If IDArray() returns non- null (not Nothing ), IDArray( i - 1), 1 <= i <= intReturned , returns the ID of the Shape object produced by the i 'th xyArray() entry, provided the i 'th xyArray() entry produced exactly one Shape object. If the i 'th xyArray() entry produced multiple Shape objects, -1 is returned in the entry. All entries i , intReturned <= i < m , return -1.

Hinweis Ab Microsoft Visio 2000, können Sie lokale und universelle Namen verwenden, verweisen auf Visio-Shapes, Masters, Dokumenten, Seiten, Zeilen, Add-ons, Zellen, Hyperlinks, Formatvorlagen, Schriftarten, Master-Shape-Verknüpfungen, UI-Objekte und Ebenen. Wenn ein Benutzer ein Shape verwendet, beispielsweise wird der Benutzer einen lokalen Name angegeben. Ab Microsoft Office Visio 2003, zeigt die ShapeSheet-Kalkulationstabelle nur universelle Namen in Zellformeln und Werten. (In früheren Versionen wurden universelle Namen in der Benutzeroberfläche nicht angezeigt.)Note Beginning with Microsoft Visio 2000, you can use both local and universal names to refer to Visio shapes, masters, documents, pages, rows, add-ons, cells, hyperlinks, styles, fonts, master shortcuts, UI objects, and layers. When a user names a shape, for example, the user is specifying a local name. Beginning with Microsoft Office Visio 2003, the ShapeSheet spreadsheet displays only universal names in cell formulas and values. (In prior versions, universal names were not visible in the user interface.)

Als Entwickler können Sie in einem Programm universelle Namen verwenden, wenn Sie keine Lösung lokalisiert wird jedes Mal einen Namen ändern möchten. Verwenden Sie die DropMany -Methode, um mehr als eine Form zu löschen, wenn Sie lokale Namen zum Identifizieren der Shapes verwenden. Verwenden Sie die DropManyU -Methode, um mehr als eine Form zu löschen, wenn Sie zum Identifizieren der Shapes universelle Namen verwenden.As a developer, you can use universal names in a program when you don't want to change a name each time a solution is localized. Use the DropMany method to drop more than one shape when you are using local names to identify the shapes. Use the DropManyU method to drop more than one shape when you are using universal names to identify the shapes.

BeispielExample

Im folgenden Beispiel wird veranschaulicht, wie die DropMany -Methode verwendet. Damit wird eine Instanz von jedem Master in der Dokumentschablone des Document -Objekt für das Makro auf Page1 das Makro Document -Objekts. Stellen Sie vor dem Ausführen dieses Makros sicher, dass mindestens ein Master-Shape in der Schablone des Dokuments vorhanden ist.The following example shows how to use the DropMany method. It drops one instance of every master in the document stencil of the macro's Document object onto Page1 of the macro's Document object. Before running this macro, make sure there is at least one master in the document stencil.


Public Sub DropMany_Example() 

 On Error GoTo HandleError 

 Dim vsoMasters As Visio.Masters 
 Dim intMasterCount As Integer 
 Set vsoMasters = ThisDocument.Masters 
 intMasterCount = vsoMasters.Count 

 ReDim varObjectsToInstance(1 To intMasterCount) As Variant 
 ReDim adblXYArray(1 To intMasterCount * 2) As Double 
 Dim intCounter As Integer 
 For intCounter = 1 To intMasterCount 

 'Pass name of object to drop to DropMany. 
 varObjectsToInstance(intCounter) = vsoMasters.Item(intCounter).Name 

 'Set x components of where to drop to 2,4,6,2,4,6,2,4,6,... 
 adblXYArray (intCounter * 2 - 1) = (((intCounter - 1) Mod 3) + 1) * 2 

 'Set y components to 2,2,2,4,4,4,6,6,6,... 
 adblXYArray (intCounter * 2) = Int((intCounter + 2) / 3) * 2 

 Next intCounter 

 Dim aintIDArray() As Integer 
 Dim intProcessed As Integer 

 intProcessed = ThisDocument.Pages(1).DropMany(varObjectsToInstance, _ 
 adblXYArray, aintIDArray) 
 Debug.Print intProcessed 

 For intCounter = LBound(aintIDArray) To UBound(aintIDArray) 
 Debug.Print intCounter; aintIDArray(intCounter) 
 Next intCounter 

 Exit Sub 

 HandleError: 
 MsgBox "Error" 

 Exit Sub 

End Sub
© 2018 Microsoft