Propriedade Application.IsInScope (Visio)
Determina se uma chamada de um manipulador de eventos está entre um evento EnterScope e um evento ExitScope de um escopo. Somente leitura.
Sintaxe
expressão. IsInScope (nCmdID)
expressão Uma variável que representa um Aplicativo objeto.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Ncmdid | Obrigatório | Long | A ID do escopo. |
Valor de retorno
Booliano
Comentários
As constantes que representam IDs de escopos têm o prefixo visCmd e são declaradas pela biblioteca de tipos do Visio. Você também pode usar uma ID retornada pelo método BeginUndoScope.
Você poderia usar essa propriedade em um manipulador de eventos CellChanged para determinar se uma alteração de célula resultou de uma operação específica.
Exemplo
Este exemplo mostra como usar a propriedade IsInScope para determinar se uma chamada para um procedimento que manipula o evento CellChanged está em um escopo específico; ou seja, se a chamada ocorre entre os eventos EnterScope e ExitScope para esse escopo.
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
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.