InvisibleApp. ShapeAdded-Ereignis (Visio)InvisibleApp.ShapeAdded event (Visio)

Tritt ein, nachdem einem Dokument ein oder mehrere Shapes hinzugefügt wurden.Occurs after one or more shapes are added to a document.

SyntaxSyntax

Ausdruck. ShapeAdded (Form)expression.ShapeAdded (Shape)

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

ParameterParameters

NameName Erforderlich/OptionalRequired/Optional DatentypData type BeschreibungDescription
ShapeShape ErforderlichRequired [IVSHAPE][IVSHAPE] Das Shape oder die Gruppe von Shapes, das bzw. die dem Dokument hinzugefügt wurde.The shape or group of shapes that was added to the document.

BemerkungenRemarks

Ein Shape -Objekt kann als Quellobjekt für das ShapeAdded -Ereignis fungieren, wenn die Type -Eigenschaft des Shapes des Shapes vistypegroup (2) oder visTypePage (1) ist.A Shape object can serve as the source object for the ShapeAdded event if the shape's Type property is visTypeGroup (2) or visTypePage (1).

Die SelectionAdded -und ShapeAdded -Ereignisse ähneln sich dadurch, dass Sie nach dem Erstellen der Form (en) ausgelöst werden.The SelectionAdded and ShapeAdded events are similar in that they both fire after shape(s) are created. Sie unterscheiden sich im Verhalten, wenn mit einem einzigen Vorgang mehrere Shapes hinzugefügt werden.They differ in how they behave when a single operation adds several shapes. Angenommen, mit dem Vorgang Paste werden drei neue Shapes erstellt.Suppose a Paste operation creates three new shapes. Das ShapeAdded-Ereignis wird dreimal ausgelöst und wird für jedes der drei Objekte wirksam.The ShapeAdded event fires three times and acts on each of the three objects. Das SelectionAdded-Ereignis wird einmal ausgelöst und wird für das Selection-Objekt wirksam, in dem die drei neuen Shapes ausgewählt sind.The SelectionAdded event fires once, and it acts on a Selection object in which the three new shapes are selected.

Sie können die Application. IsInScope -Eigenschaft verwenden, um festzustellen, ob ein ShapeAdded -Ereignis durch eine neue Form oder eine Gruppe von Shapes ausgelöst wurde, die der Seite hinzugefügt wurden, durch eine Gruppe vorhandener Shapes, die gruppiert wurden, oder durch eine Paste-Aktion.To determine if a ShapeAdded event was triggered by a new shape or group of shapes being added to the page, by a set of existing shapes being grouped, or by a paste action, you can use the Application.IsInScope property. Wenn IsInScope bei der Übergabe von visCmdObjectGroup den Wert True zurückgibt, wurde das ShapeAdded-Ereignis durch eine Gruppierungsaktion ausgelöst.If IsInScope returns True when passed visCmdObjectGroup, the ShapeAdded event was triggered by a grouping action. Wenn IsInScope bei der Übergabe von visCmdUFEditPaste oder visCmdEditPasteSpecial true zurückgibt, wurde das ShapeAdded -Ereignis durch einen Einfügevorgang ausgelöst.If IsInScope returns True when passed visCmdUFEditPaste or visCmdEditPasteSpecial, the ShapeAdded event was triggered by a paste operation. Gibt IsInScope bei der Übergabe all dieser Argumente den Wert False zurück, muss das Ereignis durch das Hinzufügen neuer Shapes zum Zeichenblatt ausgelöst worden sein.If IsInScope returns False when passed all of these arguments, the event must have been triggered by new shapes being added to the page.

Wenn Sie Microsoft Visual Basic oder Visual Basic für Applikationen (VBA) verwenden, beschreibt die Syntax in diesem Thema eine gängige und effiziente Methode zum Verarbeiten von Ereignissen.If you are using Microsoft Visual Basic or Visual Basic for Applications (VBA), the syntax in this topic describes a common, efficient way to handle events.

Wenn Sie eigene Event -Objekte erstellen möchten, verwenden Sie die Add - oder AddAdvise-Methode.If you want to create your own Event objects, use the Add or AddAdvise method.

Verwenden Sie zum Erstellen eines Event-Objekts, das ein Add-On ausführt, die Add-Methode der EventList-Auflistung.To create an Event object that runs an add-on, use the Add method as it applies to the EventList collection.

Verwenden Sie zum Erstellen eines Event-Objekts, das eine Benachrichtigung empfängt, die AddAdvise-Methode.To create an Event object that receives notification, use the AddAdvise method.

Informationen zum Suchen eines Ereigniscodes für das Ereignis, das Sie erstellen möchten, finden Sie unter Ereigniscodes.To find an event code for the event that you want to create, see Event codes.

BeispielExample

In diesem VBA-Beispiel wird gezeigt, wie Shapes gezählt werden, die einer Zeichnung hinzugefügt wurden, die auf einem Master namens Squarebasiert.This VBA example shows how to count shapes added to a drawing that are based on a master called Square. Fügen Sie den Code in das Projekt des aktiven Dokuments in Visio ein.Paste the code into the active document's project in Visio.

Der DocumentSaved -Ereignishandler wird ausgeführt, wenn das aktive Dokument gespeichert wird.The DocumentSaved event handler runs when the active document is saved. Der Handler Initialisiert eine ganzzahlige Variable, intNumberOfSquares , die verwendet wird, um die Anzahl zu speichern.The handler initializes an integer variable, intNumberOfSquares , which is used to store the count.

Der ShapeAdded -Ereignishandler wird jedes Mal ausgeführt, wenn dem Zeichenblatt eine Form hinzugefügt wird, unabhängig davon, ob das Shape aus einer Schablone gezogen, mit einem Zeichentool gezeichnet oder aus der Zwischenablage eingefügt wird.The ShapeAdded event handler runs each time a shape is added to the drawing page, whether the shape is dragged from a stencil, drawn with a drawing tool, or pasted from the Clipboard. Der Handler überprüft die Master -Eigenschaft des neuen Shapes, und wenn die Form auf dem quadratischen **** Master basiert, inkrementiert intNumberOfSquares.The handler checks the Master property of the new shape, and if the shape is based on the Square master, increments intNumberOfSquares.

 
Dim intNumberOfSquares As Integer 
 
Private Sub Document_DocumentSaved(ByVal vsoDocument As Visio.IVDocument) 
 
 'Initialize number of squares added. 
 intNumberOfSquares = 0 
 
End Sub 
 
Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 
 Dim vsoMaster As Visio.Master 
 
 'Get the Master property of the shape. 
 Set vsoMaster = vsoShape.Master 
 
 'Check whether the shape has a master. If not, 
 'the shape was created locally. 
 If Not (vsoMaster Is Nothing) Then 
 
 'Check whether the master is "Square". 
 If vsoMaster.Name = "Square" Then 
 
 'Increment the count for the number of squares added. 
 intNumberOfSquares = intNumberOfSquares + 1 
 
 End If 
 
 End If 
 
 MsgBox "Number of squares: " & intNumberOfSquares, vbInformation, _ 
 "Document Created Example" 
 
End Sub

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.