InvisibleApp.MarkerEvent-Ereignis (Visio)

Dies wird durch aufrufen der QueueMarkerEvent-Methode verursacht.

Syntax

Ausdruck. MarkerEvent (app, SequenceNum, ContextString)

Ausdruck Eine Variable, die ein InvisibleApp-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
App Erforderlich [IVAPPLICATION] Die aktive Instanz von Microsoft Visio.
SequenceNum Erforderlich Long Die Ordinalposition dieses Ereignisses in Bezug auf vergangene Ereignisse.
ContextString Erforderlich String Kontextzeichenfolge, die von der QueueMarkerEvent-Methode übergeben wird.

HinwBemerkungeneise

Im Unterschied zu anderen Ereignissen, die von Visio ausgelöst werden, wird das MarkerEvent-Ereignis von einem Clientprogramm ausgelöst. Ein Clientprogramm empfängt nur dann das MarkerEvent-Ereignis, wenn es die QueueMarkerEvent-Methode aufgerufen hat.

Mithilfe des MarkerEvent-Ereignisses in Verbindung mit der QueueMarkerEvent-Methode kann ein Clientprogramm ein Ereignis in eine eigene Warteschlange leiten. Das Clientprogramm empfängt das MarkerEvent-Ereignis, nachdem Visio alle beim Aufruf von QueueMarkerEvent in seiner Ereigniswarteschlange vorhandenen Ereignisse ausgelöst hat.

Das MarkerEvent-Ereignis übergibt sowohl die Kontextzeichenfolge, die von der QueueMarkerEvent-Methode übergeben wurde, als auch die Sequenznummer des MarkerEvent-Ereignisses an den MarkerEvent-Ereignishandler. Jeder dieser Werte kann verwendet werden, um QueueMarkerEvent-Aufrufe mit MarkerEvent-Ereignissen zu korrelieren. Dadurch kann ein Clientprogramm selbst verursachte Ereignisse von anderen Ereignissen unterscheiden.

Angenommen, ein Clientprogramm, das die Werte von Visio-Zellen ändert, soll nur auf CellChanged-Ereignisse reagieren, die es selbst verursacht hat. Das Clientprogramm kann zuerst die QueueMarkerEvent-Methode aufrufen und eine Kontextzeichenfolge zur späteren Verwendung übergeben, um den Verarbeitungsbereich in Klammern zu setzen.

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

Im MarkerEvent-Ereignishandler könnte das Clientprogramm dann die an die QueueMarkerEvent-Methode übergebene Kontextzeichenfolge verwenden, um die cellChanged-Ereignisse zu identifizieren, die es verursacht hat.

 
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

Wenn Sie Microsoft Visual Basic oder Visual Basic für Applikationen (VBA) verwenden, beschreibt die Syntax in diesem Thema eine gängige und effiziente Methode zum Verarbeiten von Ereignissen.

Wenn Sie eigene Event-Objekte erstellen möchten, verwenden Sie die Add- oder AddAdvise-Methode .

Verwenden Sie zum Erstellen eines Event-Objekts, das ein Add-On ausführt, die Add-Methode der EventList-Auflistung.

Verwenden Sie zum Erstellen eines Event-Objekts, das eine Benachrichtigung empfängt, die AddAdvise-Methode.

Informationen zum Suchen eines Ereigniscodes für das Ereignis, das Sie erstellen möchten, finden Sie unter Ereigniscodes.

Wenn Sie dieses Ereignis von einem Programm behandeln, das eine Benachrichtigung empfängt, ist das MarkerEvent-Ereignis eines aus einer Gruppe von Ereignissen, die zusätzliche Informationen in der EventInfo-Eigenschaft des Application-Objekts aufzeichnen.

Die EventInfo-Eigenschaft gibt ContextString zurück, wie zuvor beschrieben. Das Argument varMoreInfo für VisEventProc ist leer.

Beispiel

Im folgenden Beispiel wird gezeigt, wie ein Ereignis in der Ereigniswarteschlange mit dem MarkerEvent-Ereignis markiert wird.

Fügen Sie diesen Beispielcode in das ThisDocument-Codefenster ein, und führen Sie dann UseMarker aus. Die Ausgabe wird im Direktfenster angezeigt.

 
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

Das folgende Ergebnis wird im Direktfenster angezeigt:

Marker: I am starting...

ShapeAdded: Sheet.1

Marker: I am finished...

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.