Propriedade Application.CurrentScope (Visio)
Determina a ID de um escopo que aciona um evento. Somente leitura.
Sintaxe
expressão. CurrentScope
expressão Uma variável que representa um Aplicativo objeto.
Valor de retorno
Long
Comentários
Retornará visScopeIDInvalid (-1) se um escopo não for aberto. A ID do escopo pode ser uma identificação interna de escopo do Microsoft Visio que corresponda a um comando do Visio ou a uma ID de escopo externa passada para um cliente de automação pelo método BeginUndoScope.
Os destinatários de um evento consideram o escopo aberto se o evento EnterScope foi disparado mas o evento ExitScope não foi.
Para determinar se o disparo de uma fila de eventos está relacionado a um escopo interno específico do aplicativo, ou a um escopo aberto ou fechado pelo cliente de automação, use a propriedade IsInScope.
Exemplo
Este exemplo mostra como usar a propriedade CurrentScope para determinar a identificação do escopo atual.
Private WithEvents vsoApplication As Visio.Application
Private lngScopeID As Long
Public Sub ScopeActions()
Dim vsoShape As Visio.Shape
'Set the module level application variable to
'trap Application level events.
Set vsoApplication = Application
'Begin a scope, set the module level variable.
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 (which would trigger a cell changed 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 current 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 strDescription As String, _
ByVal bErrOrCancelled As Boolean)
If vsoApplication.CurrentScope = lngScopeID Then
Debug.Print "Exiting current scope " & nScopeID
Else
Debug.Print "ExitScope " & bstrDescription & "(" & nScopeID & ")"
End If
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.