Application.ShapeAdded-Ereignis (Visio)
Tritt ein, nachdem einem Dokument ein oder mehrere Shapes hinzugefügt wurden.
Syntax
Ausdruck. ShapeAdded (Shape)
expression Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
Shape | Erforderlich | [IVSHAPE] | Das Shape oder die Gruppe von Shapes, das bzw. die dem Dokument hinzugefügt wurde. |
Hinweise
Ein Shape-Objekt kann als Quellobjekt für das ShapeAdded-Ereignis dienen, wenn die Type-Eigenschaft des Shapes visTypeGroup (2) oder visTypePage (1) ist.
Die SelectionAdded- und ShapeAdded-Ereignisse sind insofern vergleichbar, als beide nach dem Erstellen von Shapes ausgelöst werden. Sie unterscheiden sich im Verhalten, wenn mit einem einzigen Vorgang mehrere Shapes hinzugefügt werden. Angenommen, mit dem Vorgang Paste werden drei neue Shapes erstellt. Das ShapeAdded-Ereignis wird dreimal ausgelöst und wird für jedes der drei Objekte wirksam. Das SelectionAdded-Ereignis wird einmal ausgelöst und wird für das Selection-Objekt wirksam, in dem die drei neuen Shapes ausgewählt sind.
Sie können die Application.IsInScope-Eigenschaft verwenden, um festzustellen, ob ein ShapeAdded-Ereignis durch ein neues Shape oder eine Gruppe von Shapes ausgelöst wurde, die dem Zeichenblatt hinzugefügt werden, durch eine Gruppe vorhandener Shapes, die gruppiert werden, oder durch eine Einfügeaktion. Wenn IsInScope bei der Übergabe von visCmdObjectGroup den Wert True zurückgibt, wurde das ShapeAdded-Ereignis durch eine Gruppierungsaktion ausgelöst. Wenn IsInScopeTrue zurückgibt, wenn visCmdUFEditPaste oder visCmdEditPasteSpecial übergeben wird, wurde das ShapeAdded-Ereignis durch einen Einfügevorgang ausgelöst. 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.
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.
Wenn Sie eigene Event-Objekte erstellen möchten, verwenden Sie die Add- oder AddAdvise-Methode .
Verwenden Sie zum Erstellen eines Event-Objekts, das ein Add-On ausführt, die Add-Methode der EventList-Auflistung.
Verwenden Sie zum Erstellen eines Event-Objekts, das eine Benachrichtigung empfängt, die AddAdvise-Methode.
Informationen zum Suchen eines Ereigniscodes für das Ereignis, das Sie erstellen möchten, finden Sie unter Ereigniscodes.
Beispiel
Dieses VBA-Beispiel zeigt, wie einer Zeichnung hinzugefügte Shapes gezählt werden, die auf einem Master-Shape mit der Bezeichnung Square basieren. Fügen Sie den Code in Visio in das Projekt des aktiven Dokuments ein.
Der DocumentSaved-Ereignishandler wird beim Speichern des aktiven Dokuments ausgeführt. Der Handler initialisiert eine ganzzahlige Variable, intNumberOfSquares , die zum Speichern der Anzahl verwendet wird.
Der ShapeAdded-Ereignishandler wird jedes Mal ausgeführt, wenn dem Zeichenblatt ein Shape hinzugefügt wird, unabhängig davon, ob das Shape aus einer Schablone gezogen, mit einem Zeichnungstool gezeichnet oder aus der Zwischenablage eingefügt wird. Der Handler überprüft die Master-Eigenschaft der neuen Form, und wenn die Form auf dem Square master basiert, inkrementiert 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 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.