Table of contents
TOC
Réduire la table des matières
Développer la table des matières

Application.CurrentScope, propriété (Visio)Application.CurrentScope Property (Visio)

office 365 dev account|Dernière mise à jour: 14/03/2018
|
2 Collaborateurs

Détermine l’ID de la portée à l’origine du déclenchement d’un événement. En lecture seule.Determines the ID of the scope that causes an event to fire. Read-only.

SyntaxeSyntax

expression . CurrentScopeexpression . CurrentScope

expression Variable qui représente un objet Application.expression A variable that represents an Application object.

Valeur renvoyéeReturn Value

Entier longLong

RemarquesRemarks

Renvoie visScopeIDInvalid (-1) si une portée n’est ouverte. L’ID de portée peut être un ID de portée Microsoft Visio interne qui correspond à une commande Visio ou un ID de portée externe transmis à un client Automation par la méthode BeginUndoScope .Returns visScopeIDInvalid (-1) if a scope isn't open. The scope ID could be an internal Microsoft Visio scope ID that corresponds to a Visio command or an external scope ID passed to an Automation client by the BeginUndoScope method.

Les destinataires d’un événement considèrent une portée comme ouverte si l’événement EnterScope a été déclenché, mais l’événement ExitScope n’a pas été déclenché.The recipients of an event consider a scope open if the EnterScope event has fired but the ExitScope event has not fired.

Pour déterminer si le déclenchement de file d’attente d’événements est lié à une portée particulière interne à l’application ou une ouverte et fermée par un client Automation, utilisez la propriété IsInScope .To determine if the event queue firing is related to a particular scope internal to the application or one opened and closed by an Automation client, use the IsInScope property.

ExempleExample

Cet exemple montre comment utiliser la propriété CurrentScope pour déterminer l’ID de l’étendue actuelle.This example shows how to use the CurrentScope property to determine the ID of the current scope.

Private WithEvents vsoApplication As Visio.Application 
Private lngScopeID As Long 

Public Sub ScopeActions() 

 Dim vsoShape As Visio.Shape 

 'Set the module level application variable to 
 'trap Application level events. 
 Set vsoApplication = Application 

 'Begin a scope, set the module level variable. 
 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 (which would trigger a cell changed 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 current 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 strDescription As String, _ 
 ByVal bErrOrCancelled As Boolean) 

 If vsoApplication.CurrentScope = lngScopeID Then 
 Debug.Print "Exiting current scope " &; nScopeID 
 Else 
 Debug.Print "ExitScope " &; bstrDescription &; "(" &; nScopeID &; ")" 
 End If 

End Sub
© 2018 Microsoft