Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.