會取得或設定在 Microsoft Visio 實例期間記錄的事件。 讀取/寫入。
語法
表情。TraceFlags
expression 代表 Application 物件的變數。
傳回值
Long
註解
TraceFlags 屬性的值可以是下列值的組合。
| 常數 | 值 | 描述 |
|---|---|---|
| visTraceEvents(visTraceEvents) | &H1 | 事件發生 |
| visTraceAdvises | &H2 | 連出的通知呼叫 |
| visTraceAddonInvokes | &H4 | 附加元件的叫用 |
| visTraceCallsToVBA | &H8 | VBA 啟動 |
設定 visTraceEvents 旗標後,Visio 會即時記錄大多數事件,並在即時視窗中顯示。 大多數情況下,即使沒有外部代理監聽或回應事件,這種情況仍然發生。 在少數情況下,Visio 知道事件沒有監聽者,卻不會記錄這些事件。 Visio 也不會記錄閒置事件或提供建議。 此外,有些事件是其他事件的專業化,不會被記錄。 例如, SelectionAdded 事件是由不同的 ShapeAdded 事件組成,因此 Immediate 視窗記錄的是 ShapeAdded 事件,但不記錄 SelectionAdded 事件。
下列是 Visio 在有設定 visTraceEvents 時所可能記錄的字串:
-event: 0x8040 /doc=1 /page=1 /shape=Sheet.1
在 -event: 之後的數字是所發生事件的代碼。 在此例中,0x8040 是 ShapeAdded 事件的代碼。 事件代碼之後的文字則根據事件而不同。
如果設定 visTraceAdvises 旗標,便會剛好在 Visio 呼叫事件處理常式程序之前在 [即時運算] 視窗中寫入行,並在事件處理常式傳回後馬上寫入另一行。 這包含 Microsoft Visual Basic for Applications (VBA) 專案中的事件程序,例如 ThisDocument 中的程序。 下列範例顯示您可能看到的內容:
>advise seq=4 event=0x8040 sink=0x40097598
<advise seq=4
這些字串指出對事件處理常式的呼叫以及從事件處理常式傳回的呼叫。 此序號還指出這個事件是 Visio 所觸發的第四個事件。 事件代碼是 0x8040,而 Visio 所呼叫的介面位址則是 0x40097598。
設定 visTraceAddonInvokes 旗標會記錄 Visio 何時叫用 EXE 或 VSL 附加元件以及何時重新取得控制。 範例如下:
>invokeAO: SHOWARGS.EXE
<invokeAO: completed
設定 visTraceAddonInvokes 旗標還會追蹤嘗試叫用不存在的附件元件。 例如,如果儲存格的公式是 =RunAddon("xxx"),而且沒有名為 "xxx" 的附加元件,則會記錄此訊息:「InvokeAO:無法將 'xxx' 對應到已知的附加元件」。
如果設定 visTraceCallToVBA flag 旗標,便會剛好在 Visio 進行 VBA 呼叫 (而非事件程序呼叫) 之前在 [即時運算] 視窗中寫入行 (可使用 visTraceAdvises 來記錄對 VBA 事件程序的呼叫)。 這個旗標會追蹤巨集叫用、對 VBA 程序的呼叫 (從使用 RunAddon 或 CallThis 運算元的儲存格評估而產生),以及從自訂功能表或工具列項目的選擇所產生的呼叫。 範例如下:
>invokeVBA: Module1.MyMacro
<invokeVBA: completed
[即時運算] 視窗中不會顯示訊息,除非開啟了具有 VBA 專案的文件。 Visio 會在有此類文件開啟時,將少數訊息排入佇列。 不過,如果長時間沒有具有專案的文件可用,這些訊息就會遺失。 如果 VBA 重設或者有無法解除的中斷點,訊息也會遺失。
VBA 專案中的程式碼可以透過標準 的 Debug.Print 語句,將訊息與 Visio 記錄的訊息交錯出現。 非 VBA 專案中的程式碼可透過 Document.VBProject.ExecuteLine (“Debug.Print ”“某字串”“) ,將訊息記錄至即時視窗。
TraceFlags 屬性是記錄在登錄之 Application 區段的 TraceFlags 項目中。
範例
下列的 VBA 巨集會示範如何使用 TraceFlags 屬性在 [即時運算] 視窗中記錄事件、通知、附加元件叫用和 Visual Basic 叫用。
Public Sub TraceFlags_Example()
Application.TraceFlags = visTraceEvents + visTraceAdvises + _
visTraceAddonInvokes + visTraceCallsToVBA
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。