Evento Application.EnterScope (Visio)
Permanecem na fila quando um comando interno é iniciado ou quando um cliente Automation abre um escopo usando o método BeginUndoScope.
Sintaxe
expressão. EnterScope (aplicativo, nScopeID, bstrDescription)
expressão Uma variável que representa um Aplicativo objeto.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
App | Obrigatório | [IVAPPLICATION] | A instância do Microsoft Visio que contém o escopo. |
nScopeID | Obrigatório | Long | Um número independente de idioma que descreve a operação recém-finalizada ou a identificação do escopo retornada pelo método BeginUndoScope. |
bstrDescription | Obrigatório | String | Uma descrição textual da operação que é alterada em diferentes versões de idioma. Contém a descrição da interface do usuário de uma operação do Visio ou a descrição passada para o método BeginUndoScope. |
Comentários
O valor nScopeID retornado no caso de uma operação do Visio é o equivalente às constantes relacionadas ao comando que começam com visCmd.
Se estiver usando o Microsoft Visual Basic ou o Visual Basic for Applications (VBA), a sintaxe deste tópico descreverá uma maneira comum e eficiente de lidar com eventos.
Se você quiser criar seus próprios objetos Event , use o método Add ou AddAdvise .
Para criar um objeto Event que execute um complemento, use o método Add, uma vez que ele aplica-se à coleção EventList.
Para criar um objeto Event que receba notificação, use o método AddAdvise.
Para localizar um código de evento que você deseja criar, consulte Códigos de eventos.
Se estiver manipulando esse evento a partir de um programa que recebe uma notificação sobre uma conexão criada usando o método AddAdvise, o evento EnterScope será um de um grupo de eventos selecionados que gravam informações extras na propriedade EventInfo do objeto Application.
A propriedade EventInfo retorna bstrDescription, conforme descrito anteriormente. Além disso, o argumento varMoreInfo para VisEventProc contém uma cadeia de caracteres formatada da seguinte maneira: [<nScopeID>;<bErrOrCancelled>;<bstrDescription>;<nHwndContext>]
, em que nHwndContext é o identificador de janela (HWND) da janela que é o contexto para o comando; nHwndContext pode ser 0.
Para EnterScope, bErrOrCancelled sempre é igual a zero.
Exemplo
Este exemplo mostra como usar o evento EnterScope. O exemplo determina 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 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
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.