Share via


Événement InvisibleApp.ExitScope (Visio)

Mise en file d’attente lorsqu’une commande interne se termine ou lorsqu’un client Automation quitte une étendue à l’aide de la méthode EndUndoScope .

Syntaxe

expression. ExitScope (app, nScopeID, bstrDescription, bErrOrCancelled)

Expression Variable qui représente un objet InvisibleApp .

Parameters

Nom Requis/Facultatif Type de données Description
Application Requis [IVAPPLICATION] Instance de Microsoft Visio qui contient l’étendue.
nScopeID Obligatoire Long Nombre indépendant du langage qui décrit l’opération qui vient de se terminer ou l’ID d’étendue retourné par la méthode BeginUndoScope .
bstrDescription Requis String Description sous forme de texte de l'opération modifiée en fonction des différentes versions du langage. Contient la description de l'interface utilisateur d'une opération Visio ou la description transmise à la méthode BeginUndoScope.
bErrOrCancelled Requis Boolean Prend la valeur True en cas d'erreur pendant l'étendue ou d'annulation de l'étendue, et la valeur False en l'absence d'erreur ou d'annulation de l'étendue.

Remarques

La valeur nScopeID retournée dans le cas d’une opération Visio est l’équivalent des constantes liées aux commandes qui commencent par visCmd.

Si vous utilisez Microsoft Visual Basic ou Visual Basic pour Applications (VBA), la syntaxe de cette rubrique décrit un moyen générique pour gérer efficacement les événements.

Si vous souhaitez créer vos propres objets Event , utilisez la méthode Add ou AddAdvise .

Pour créer un objet Event qui exécute un module complémentaire, utilisez la méthode Add applicable à la collection EventList.

Pour créer un objet Event qui reçoit des notifications, utilisez la méthode AddAdvise.

Pour rechercher le code de l’événement à créer, voir Codes d’événement.

Si vous gérez cet événement à partir d’un programme qui reçoit une notification sur une connexion créée à l’aide de la méthode AddAdvise, l’événement ExitScope fait partie d’un groupe d’événements sélectionnés qui enregistrent des informations supplémentaires dans la propriété EventInfo de l’objet Application .

La propriété EventInfo renvoie la valeur bstrDescription décrite ci-dessus. En outre, l’argument varMoreInfo de VisEventProc contient une chaîne au format suivant : [<nScopeID>;<bErrOrCancelled>;<bstrDescription>;<nHwndContext>], où nHwndContext est le handle de fenêtre (HWND) de la fenêtre qui est le contexte de la commande ; nHwndContext peut être 0.

Dans le cas de l'événement ExitScope, bErrOuAnnulé est différent de zéro si l'opération a échoué ou a été annulée.

Exemple

Cet exemple indique comment utiliser l'événement ExitScope. L’exemple détermine si un appel à une procédure qui gère l’événement CellChanged se trouve dans une étendue particulière ; autrement dit, si l’appel se produit entre les événements EnterScope et ExitScope pour cette étendue.

 
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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.