Application.ExitScope-Ereignis (Visio)

Wird in die Warteschlange eingereiht, wenn ein interner Befehl endet oder wenn ein Automatisierungsclient einen Bereich mithilfe der EndUndoScope-Methode beendet.

Syntax

Ausdruck verwendet werden. ExitScope (app, nScopeID, bstrDescription, bErrOrCancelled)

expression Eine Variable, die ein Application-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
App Erforderlich [IVANWENDUNG] Die Instanz von Microsoft Visio, die den Bereich enthält.
nScopeID Erforderlich Long Eine sprachunabhängige Zahl, die den Vorgang beschreibt, der gerade beendet wurde, oder die Bereichs-ID, die von der BeginUndoScope-Methode zurückgegeben wurde.
bstrDescription Erforderlich String Eine Textbeschreibung des Vorgangs, die in verschiedenen Sprachversionen variiert. Enthält die Benutzeroberflächenbeschreibung eines Visio-Vorgangs oder die Beschreibung, die an die BeginUndoScope-Methode übergeben wird.
bErrOrCancelled Erforderlich Boolean True, wenn im Bereich ein Fehler auftrat oder der Bereich abgebrochen wurde. False, wenn kein Fehler auftrat und der Bereich nicht abgebrochen wurde.

Hinweise

Der bei einem Visio-Vorgang zurückgegebene nScopeID-Wert entspricht den befehlsbezogenen Konstanten, die mit visCmd* beginnen.

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 Ereignisobjekte 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.

Wenn Sie dieses Ereignis von einem Programm aus behandeln, das eine Benachrichtigung über eine Verbindung empfängt, die mit der AddAdvise-Methode erstellt wurde, gehört das ExitScope-Ereignis zu einer Gruppe ausgewählter Ereignisse, die zusätzliche Informationen in der EventInfo-Eigenschaft des Application-Objekts aufzeichnen.

Die EventInfo-Eigenschaft gibt bstrDescription zurück, wie zuvor beschrieben. Darüber hinaus enthält das varMoreInfo-Argument für VisEventProc eine Zeichenfolge, die wie folgt formatiert ist: [<nScopeID>;<bErrOrCancelled>;<bstrDescription>;<nHwndContext>], wobei nHwndContext das Fensterhandle (HWND) des Fensters ist, das der Kontext für den Befehl ist; nHwndContext könnte 0 sein.

bErrOrCancelled ist für ExitScope ungleich Null, wenn der Vorgang fehlgeschlagen ist oder abgebrochen wurde.

Beispiel

Dieses Beispiel zeigt die Verwendung des ExitScope-Ereignisses. Das Beispiel bestimmt, ob sich ein Aufruf einer Prozedur, die das CellChanged-Ereignis behandelt, in einem bestimmten Bereich befindet. das heißt, ob der Aufruf zwischen den EnterScope - und ExitScope-Ereignissen für diesen Bereich erfolgt.

 
Private WithEvents vsoApplication As Visio.Application 
Private lngScopeID AsLong 
 
Public Sub Scope_Example() 
 
 Dim vsoShape As Visio.Shape 
 
 'Set the module-level application variable to 
 'trap application-level events. 
 Set vsoApplication = Application 
 
 'Begin a scope. 
 lngScopeID = Application.BeginUndoScope("Draw Shapes") 
 
 'Draw three shapes. 
 Set vsoShape = ActivePage.DrawRectangle(1, 2, 2, 1) 
 ActivePage.DrawOval 3, 4, 4, 3 
 ActivePage.DrawLine 4, 5, 5, 4 
 
 'Change a cell (to trigger a CellChanged event). 
 vsoShape.Cells("Width").Formula = 5 
 
 'End and commit this scope. 
 Application.EndUndoScope lngScopeID, True 
 
End Sub 
 
Private Sub vsoApplication_CellChanged(ByVal Cell As IVCell) 
 
 'Check to see if this cell change is the result of something 
 'happening within the scope. 
 If vsoApplication.IsInScope(lngScopeID) Then 
 Debug.Print Cell.Name & " changed in scope "; lngScopeID 
 End If 
 
End Sub 
 
Private Sub vsoApplication_EnterScope(ByVal app As IVApplication, _ 
 ByVal nScopeID As Long, _ 
 ByVal bstrDescription As String) 
 
 If vsoApplication.CurrentScope = lngScopeID Then 
 Debug.Print "Entering my scope " & nScopeID 
 Else 
 Debug.Print "Enter Scope " & bstrDescription & "(" & nScopeID & ")" 
 End If 
 
End Sub 
 
Private Sub vsoApplication_ExitScope(ByVal app As IVApplication, _ 
 ByVal nScopeID As Long, _ 
 ByVal bstrDescription As String, _ 
 ByVal bErrOrCancelled As Boolean) 
 
 If vsoApplication.CurrentScope = lngScopeID Then 
 Debug.Print "Exiting my scope " & nScopeID 
 Else 
 Debug.Print "Exit Scope " & bstrDescription & "(" & nScopeID & ")" 
 End If 
 
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.