Compartilhar via


Evento Application.ExitScope (Visio)

Colocado em fila quando um comando interno termina ou quando um cliente de Automatização sai de um âmbito com o método EndUndoScope .

Sintaxe

expressão. ExitScope (aplicação, nScopeID, bstrDescription, bErrOrCancelled)

expressão Uma variável que representa um Aplicativo objeto.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
aplicação 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 o ID de âmbito devolvido 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 devolvido no caso de uma operação do Visio é o equivalente às constantes relacionadas com o 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 quiser criar os seus próprios objetos de Evento , utilize 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 a processar este evento a partir de um programa que recebe uma notificação através de uma ligação criada com o método AddAdvise, o evento ExitScope é um de um grupo de eventos selecionados que registam informações adicionais na propriedade EventInfo do objeto Aplicação .

A propriedade EventInfo retorna bstrDescription, conforme descrito anteriormente. Além disso, o argumento varMoreInfo para VisEventProc contém uma cadeia formatada da seguinte forma: [<nScopeID>;<bErrOrCancelled>;<bstrDescription>;<nHwndContext>], em que nHwndContext é a alça da janela (HWND) da janela que é o contexto do 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 processa o evento CellChanged está num âmbito específico; ou seja, se a chamada ocorre entre os eventos EnterScope e ExitScope para esse âmbito.

 
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.