InvisibleApp.IsInScope-Eigenschaft (Visio)

Bestimmt, ob ein Aufruf eines Ereignishandlers zwischen einem EnterScope-Ereignis und einem ExitScope-Ereignis für einen Bereich erfolgt. Schreibgeschützt.

Syntax

Ausdruck. IsInScope (nCmdID)

Ausdruck Eine Variable, die ein InvisibleApp-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
nCmdID Erforderlich Long Die Bereichs-ID.

Rückgabewert

Boolesch

Bemerkungen

Konstanten, die Bereichs-IDs darstellen, erhalten das Präfix visCmd und werden in der Visio-Typbibliothek deklariert. Sie können auch eine von der BeginUndoScope-Methode zurückgegebene ID verwenden.

Sie können diese Eigenschaft in einem CellChanged-Ereignishandler verwenden, um zu bestimmen, ob eine Zelländerung das Ergebnis eines bestimmten Vorgangs ist.

Beispiel

In diesem Beispiel wird gezeigt, wie die IsInScope-Eigenschaft verwendet wird, um zu bestimmen, ob sich ein Aufruf einer Prozedur, die das CellChanged-Ereignis behandelt, in einem bestimmten Bereich befindet. Das heißt, ob der Aufruf zwischen den Ereignissen EnterScope und ExitScope für diesen Bereich erfolgt.

 
Private WithEvents vsoApplication As Visio.Application 
Private lngScopeID As Long 
 
Public Sub IsInScope_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 the 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 "ExitScope " & 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.