Application.IsInScope プロパティ (Visio)
イベント ハンドラーへの呼び出しが、EnterScope イベントと ExitScope イベントの間で実行されているかどうかを判別します。 読み取り専用です。
構文
式。IsInScope (nCmdID)
expressionApplication オブジェクトを 表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
nCmdID | 必須 | Long | スコープ ID です。 |
戻り値
Boolean
注釈
スコープ ID を表す定数には visCmd というプレフィックスが付いていて、Visio タイプ ライブラリで宣言されています。 BeginUndoScope メソッドによって返される ID も使用できます。
このプロパティを CellChanged イベント ハンドラーで使用して、セルの変更が、特定の操作の結果発生したかどうかを判別できます。
例
この例では、 IsInScope プロパティを使用して 、CellChanged イベントを処理するプロシージャの呼び出しが特定のスコープ内にあるかどうかを判断する方法を示します。つまり、そのスコープの EnterScope イベントと ExitScope イベントの間で呼び出しが発生するかどうかです。
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
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。