Share via


Evento InvisibleApp.ExitScope (Visio)

Se pone en cola cuando finaliza un comando interno o cuando un cliente de automatización sale de un ámbito mediante el método EndUndoScope .

Sintaxis

expresión. ExitScope (app, nScopeID, bstrDescription, bErrOrCancelled)

Expresión Variable que representa un objeto InvisibleApp .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Aplicación Obligatorio [IVAPPLICATION] Instancia de Microsoft Visio que contiene el ámbito.
nScopeID Necesario Long Número independiente del idioma que describe la operación que acaba de finalizar, o bien, identificador de ámbito devuelto por el método BeginUndoScope.
bstrDescription Obligatorio String Descripción textual de la operación que cambia en diferentes versiones de idioma. Contiene la descripción de la interfaz de usuario de una operación de Visio, o bien, la descripción que se ha pasado al método BeginUndoScope.
bErrOrCancelled Obligatorio Boolean Es True si se ha producido un error durante el ámbito o si se ha cancelado el ámbito; es False si no se ha producido ningún error y no se ha cancelado el ámbito.

Comentarios

El valor nScopeID devuelto en el caso de una operación de Visio es el equivalente de las constantes relacionadas con comandos que comienzan por visCmd.

Si utiliza Microsoft Visual Basic o Visual Basic para Aplicaciones (VBA), la sintaxis de este tema describe una forma común y eficaz de controlar los eventos.

Si desea crear sus propios objetos Event , use el método Add o AddAdvise .

Para crear un objeto Event que ejecute un complemento, use el método Add, ya que se aplica a la colección EventList.

Para crear un objeto Event que reciba notificaciones, use el método AddAdvise.

Para encontrar un código de evento para el evento que desea crear, vea el tema sobre los códigos de evento.

Si controla este evento desde un programa que recibe una notificación a través de una conexión creada mediante el método AddAdvise, el evento ExitScope es uno de un grupo de eventos seleccionados que registran información adicional en la propiedad EventInfo del objeto Application .

La propiedad EventInfo devuelve bstrDescription, tal y como se describió anteriormente. Además, el argumento varMoreInfo a VisEventProc contiene una cadena con el formato siguiente: [<nScopeID>;<bErrOrCancelled>;<bstrDescription>;<nHwndContext>], donde nHwndContext es el identificador de ventana (HWND) de la ventana que es el contexto del comando; nHwndContext podría ser 0.

Para ExitScope, bErrOrCancelled no es cero si la operación ha generado un error o se ha cancelado.

Ejemplo:

Este ejemplo muestra cómo utilizar el evento ExitScope. En el ejemplo se determina si una llamada a un procedimiento que controla el evento CellChanged está en un ámbito determinado; es decir, si la llamada se produce entre los eventos EnterScope y ExitScope para ese á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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.