Événement Application.MarkerEvent (Visio)

Provoqué par l’appel de la méthode QueueMarkerEvent .

Syntaxe

expression. MarkerEvent (app, SequenceNum, ContextString)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
Application Requis [IVAPPLICATION] Instance active de Microsoft Visio.
SequenceNum Obligatoire Long Position ordinale de cet événement par rapport aux événements précédents.
ContextString Requis String Chaîne de contexte transmise par la méthode QueueMarkerEvent.

Remarques

À la différence des autres événements déclenchés par Visio, l'événement MarkerEvent est déclenché par un programme client. Ce dernier ne reçoit l'événement MarkerEvent que s'il a appelé la méthode QueueMarkerEvent.

En associant l'événement MarkerEvent à la méthode QueueMarkerEvent, un programme client peut mettre un événement dans sa propre file d'attente. Le programme client reçoit l'événement MarkerEvent après le déclenchement par Visio de tous les événements présents dans sa file d'attente au moment de l'appel de la méthode QueueMarkerEvent.

L'événement MarkerEvent transmet au gestionnaire d'événement QueueMarkerEvent la chaîne de contexte qui a été transmise par la méthode MarkerEvent et le numéro d'ordre de l'événement MarkerEvent. L’une ou l’autre de ces valeurs peut être utilisée pour mettre en corrélation les appels QueueMarkerEvent avec les événements MarkerEvent . Ainsi, un programme client peut distinguer les événements qu'il a déclenchés de ceux qu'il n'a pas générés.

Par exemple, un programme client qui modifie les valeurs des cellules de Visio peut vouloir ne réagir qu'aux événements CellChanged qu'il n'a pas déclenchés. Le programme client peut d’abord appeler la méthode QueueMarkerEvent et passer une chaîne de contexte à utiliser ultérieurement pour mettre entre crochets l’étendue de son traitement.

 
vsoObject.QueueMarkerEvent "ScopeStart" 
 <My program changes cells here> 
vsoObject.QueueMarkerEvent "ScopeEnd" 

Dans le gestionnaire d’événements MarkerEvent , le programme client peut ensuite utiliser la chaîne de contexte transmise à la méthode QueueMarkerEvent pour identifier les événements CellChanged qu’il a provoqués.

 
Dim blsICausedCellChanges as Boolean 
 
Private Sub vsoObject_MarkerEvent (ByVal vsoApplication As Visio.IVApplication, _ 
 ByVal lngSequenceNum As Long, ByVal strContextString As String) 
 
 If strContextString = "ScopeStart" Then 
 blsICausedCellChanges = True 
 ElseIf strContextString = "ScopeEnd" Then 
 blsICausedCellChanges = "False" 
 End If 
 
End Sub 
 
Private Sub vsoObject_CellChanged (ByVal Cell As Visio.IVCell) 
 
 'Respond only if this client didn't cause a cell change. 
 If blsICausedCellChanges = False Then 
 <respond to the cell changes> 
 End If 
 
End Sub

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, l’événement MarkerEvent fait partie d’un groupe d’événements qui enregistrent des informations supplémentaires dans la propriété EventInfo de l’objet Application .

La propriété EventInfo renvoie la valeur ChaîneContexte décrite ci-dessus. L'argument varPlusInfo de VisEventProc est vide.

Exemple

Cet exemple indique comment utiliser l'événement MarkerEvent pour marquer un événement dans la file d'attente.

Collez cet exemple de code dans la fenêtre de code ThisDocument , puis exécutez UseMarker. La sortie s’affiche dans la fenêtre Exécution.

 
Dim WithEvents vsoApplication As Visio.Application 
 
Private Sub vsoApplication_MarkerEvent(ByVal app As Visio.IVApplication, _ 
 ByVal lngSequenceNum As Long, ByVal strContextString As String) 
 Debug.Print "Marker: " & app.EventInfo(0) 
 
End Sub 
 
Private Sub vsoApplication_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 Debug.Print " ShapeAdded: " & vsoShape.Name 
 
End Sub 
 
Public Sub UseMarker() 
 
 Set vsoApplication = ThisDocument.Application 
 
 'MarkerEvent events can be used to comment a segment 
 'of events in the queue. 
 vsoApplication.QueueMarkerEvent "I am starting..." 
 ActivePage.DrawRectangle 0, 0, 3, 3 
 vsoApplication.QueueMarkerEvent "I am finished..." 
 
End Sub

Le résultat de la fenêtre Exécution se présente de la façon suivante :

Marker: I am starting...

ShapeAdded: Sheet.1

Marker: I am finished...

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.