InvisibleApp.TraceFlags-Eigenschaft (Visio)

Dient zum Abrufen oder Festlegen von Ereignissen, die während der Ausführung einer Microsoft Visio-Instanz protokolliert werden. Lese-/Schreibzugriff.

Syntax

Ausdruck. TraceFlags

Ausdruck Eine Variable, die ein InvisibleApp-Objekt darstellt.

Rückgabewert

Long

Hinweise

Der Wert der TraceFlags-Eigenschaft kann eine Kombination aus den folgenden Werten sein.

Konstante Wert Beschreibung
visTraceEvents &H1 Ereignisvorkommen
visTraceAdvises &H2 Ausgehende Anweisungsaufrufe
visTraceAddonInvokes &H4 Add-On-Aufrufe
visTraceCallsToVBA &H8 VBA-Aufrufe

Wenn das visTraceEvents-Flag festgelegt wird, werden die meisten Ereignisse von Visio protokolliert, sobald sie auftreten, und sie werden im Direktfenster angezeigt. In den meisten Fällen geschieht das auch, wenn kein externer Agent ein Ereignis überwacht oder beantwortet. In einigen Fällen wird von Visio erkannt, dass kein Listener für das Ereignis vorhanden ist, und diese Ereignisse werden nicht protokolliert. Auch Leerlaufereignisse oder Advise-Aufrufe werden von Visio nicht protokolliert. Darüber hinaus sind einige Ereignisse Spezialfälle anderer Ereignisse und werden nicht aufgezeichnet. Das SelectionAdded-Ereignis wird z. B. aus distinkten ShapeAdded-Ereignissen gebildet, sodass im Direktfenster zwar die ShapeAdded-Ereignisse, nicht jedoch die SelectionAdded-Ereignisse aufgezeichnet werden.

Nachfolgend wird ein Beispiel für eine Zeichenfolge dargestellt, die möglicherweise von Visio protokolliert wird, wenn visTraceEvents festgelegt wurde:

-event: 0x8040 /doc=1 /page=1 /shape=Sheet.1

Bei der Zahl hinter "-event:" handelt es sich um den Code des eingetretenen Ereignisses. In diesem Fall steht "0x8040" für den Code des ShapeAdded-Ereignisses. Der Text hinter dem Ereigniscode unterscheidet sich von Ereignis zu Ereignis.

Durch das Festlegen des visTraceAdvises-Flags wird eine Zeile in das Direktfenster geschrieben, und zwar kurz bevor Visio eine Ereignishandlerprozedur aufruft, und eine weitere Zeile direkt hinter die Rückgabe des Ereignishandlers. Dies gilt auch für Ereignisprozeduren in VBA-Projekten (Microsoft Visual Basic für Applikationen), z. B. Prozeduren in ThisDocument. Hier ist ein Beispiel für eine möglicherweise angezeigte Zeichenfolge:

>advise seq=4 event=0x8040 sink=0x40097598 
<advise seq=4 

Diese Zeichenfolgen geben den Aufruf und die Rückgabe eines Ereignishandlers an. Durch die Sequenznummer wird außerdem angegeben, dass es sich bei diesem Ereignis um das vierte von Visio ausgelöste Ereignis gehandelt hat. Der Ereigniscode lautet "0x8040", und die Adresse der von Visio aufgerufenen Schnittstelle lautet "0x40097598".

Durch das Festlegen des visTraceAddonInvokes-Flags wird aufgezeichnet, wann Visio ein EXE- oder VSL-Add-On aufruft und wann Visio wieder die Steuerung übernimmt. Hier ein Beispiel:

>invokeAO: SHOWARGS.EXE 
<invokeAO: completed 

Wenn Sie das visTraceAddonInvokes-Flag festlegen, werden auch Versuche zum Aufrufen nicht vorhandener Add-Ons nachverfolgt. Lautet z. B. eine Zellformel "=RunAddon("xxx")", und es gibt kein Add-On mit dem Namen "xxx", wird die Meldung "InvokeAO: Fehler beim Zuordnen von 'xxx' zu einem gültigen Add-on" protokolliert.

Wenn Sie die Konstante visTraceCallToVBA flag festlegen, wird kurz vor dem Aufruf an VBA, bei dem es sich nicht um einen Aufruf an eine Ereignisprozedur handelt (verwenden Sie visTraceAdvises zum Protokollieren von Aufrufen an VBA-Ereignisprozeduren) eine Zeile in das Direktfenster geschrieben sowie eine weitere Zeile, kurz nachdem VBA die Steuerung an Visio zurückgibt. Mit diesem Flag wird Folgendes nachverfolgt: Makroaufrufe, Aufrufe an VBA-Prozeduren als Ergebnis der Auswertung von Zellen, die RUNADDON- oder ANRUFENDES-Operanden verwenden, und Aufrufe als Ergebnis der Auswahl von benutzerdefinierten Menü- oder Symbolleistenelementen. Hier ein Beispiel:

>invokeVBA: Module1.MyMacro 
<invokeVBA: completed 

Im Direktfenster wird nur dann eine Meldung angezeigt, wenn ein Dokument mit einem VBA-Projekt geöffnet ist. Visio stellt eine kleine Anzahl von zu protokollierenden Meldungen in eine Warteschlange, wenn ein solches Dokument geöffnet wird. Wenn jedoch längere Zeit kein Dokument mit einem Projekt zur Verfügung gestellt wird, gehen Meldungen verloren. Meldungen gehen auch beim Zurücksetzen von VBA und im Fall von noch geöffneten Haltepunkten verloren.

Code in VBA-Projekten kann seine Nachrichten mithilfe von Debug.Print-Standardanweisungen mit den von Visio protokollierten Nachrichten zwischenspeichern. Code in Nicht-VBA-Projekten kann Meldungen mithilfe von Document.VBProject.ExecuteLine("Debug.Print ""somestring""") im Direktfenster protokollieren.

Die TraceFlags-Eigenschaft wird im TraceFlags-Eintrag des Registrierungsabschnitts Application aufgezeichnet.

Beispiel

Dieses VBA-Makro zeigt, wie mithilfe der TraceFlags-Eigenschaft Ereignisse, Anweisungen, Add-On-Aufrufe und Visual Basic-Aufrufe im Direktfenster protokolliert werden.

 
Public Sub TraceFlags_Example() 
 
 Application.TraceFlags = visTraceEvents + visTraceAdvises + _ 
 visTraceAddonInvokes + visTraceCallsToVBA 
 
End Sub

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.