Evento Application.ExitScope (Visio)

Enfileirado quando um comando interno termina ou quando um cliente de Automação sai de um escopo usando o método EndUndoScope .

Sintaxe

expressão. ExitScope (app, nScopeID, bstrDescription, bErrOrCancelled)

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 linguagem que descreve a operação que acabou de terminar ou a ID de 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 IU de uma operação do Visio ou a descrição passada para o método BeginUndoScope.
bErrOrCancelled Obrigatório Boolean True se houve um erro durante o escopo ou se o escopo foi cancelado; False se não houve um erro e ele não foi cancelado.

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 você estiver lidando com esse evento de um programa que recebe uma notificação sobre uma conexão criada usando o método AddAdvise, o evento ExitScope será um de um grupo de eventos selecionados que registram 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 ExitScope, bErrOrCancelled será diferente de zero se a operação falhar ou for cancelada.

Exemplo

Este exemplo mostra como usar o evento ExitScope. 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 AsLong 
 
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.