EventList.Add 方法 (Visio)
加入 Event 物件,該物件會在事件發生時執行附加元件。 Event物件會新增至您想要接收其事件之來源物件的EventList集合。
語法
運算式。新增 (EventCode、 Action、 Target、 TargetArgs)
表達 代表 EventList 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
EventCode | 必要 | 整數 | 要擷取的事件。 |
動作 | 必要 | 整數 | 要執行的動作。 必須是 visActCodeRunAddon,這是 Visio 類型程式庫中 VisEventCodes 的成員。 |
Target | 必要 | 字串 | 附加元件的名稱。 |
TargetArgs | 必要 | 字串 | 傳遞給 Event 物件,以便設定物件 TargetArgs 屬性的字串。 |
傳回值
事件
註解
當來源物件的 EventList 集合含有 Event 物件時,會限制事件的報告範圍。 所報告的事件範圍,僅限於來源物件以及物件模型階層中較低層級的物件。 例如,若要在開啟特定檔時執行附加元件,請將DocumentOpened事件的Event物件新增至該檔的EventList集合。 若要在應用程式實例中開啟任何檔時執行附加元件,請將Event物件新增至Application物件的EventList集合。
建立 Event 物件是處理來自 C++ 或其他非 Microsoft Visual Basic 解決方案之事件的常用方式。 當您使用 Visual Basic WithEvents 關鍵字來處理事件時,會引發來源物件事件中的所有事件,但是當您建立 Event 物件時,您的程式只會收到您所選取事件的通知。 根據您使用的解決方案,這可能會獲致效能上的提升。
執行附加元件的 Event 物件可以保存下來;也就是說,這些物件可以與 Visio 文件一起儲存。 Event 物件的 Persistent 及 Persistable 屬性都必須為 True,才能夠具有保存性。
傳遞給 Add 方法的引數會設定 Event 物件的 Event、Action (visActCodeRunAddon)、Target 及 TargetArgs 屬性的初始值。
事件代碼是由 Visio 類型程式庫宣告,並具有前置詞 visEvt。 事件代碼通常是常數的組合。 例如,visEvtAdd + visEvtDoc是DocumentAdded事件的事件代碼。 若要尋找您想要建立之事件的事件代碼,請參閱 事件代碼。
若要建立 Event 物件,而此物件可建議與某個事件有關的呼叫者的接收物件,請參閱 AddAdvise 方法。
範例
下列範例將示範如何將一個可執行附加元件的 Event 物件加入到來源物件的 EventList 集合中;此案例中的來源物件為 Document 物件,而您想要接收此物件的事件。
執行此宏之前,請將路徑 \ 檔名取代為 Visio 專案中 EXE) 之可執行檔附加元件的有效路徑和檔案名 (。 附加元件應該不接受任何引數。
Public Sub AddEvent_Example()
Dim vsoAddons As Visio.Addons
Dim vsoEventList As Visio.EventList
Dim vsoDocument As Visio.Document
Dim vsoEvent As Visio.Event
Dim vsoAddon As Visio.Addon
'Add a document based on the Basic Diagram template.
Set vsoDocument = Documents.Add("Basic Diagram.vst")
'Add an add-on to the Addons collection.
Set vsoAddons = Visio.Addons
Set vsoAddon = vsoAddons.Add("path \filename ")
'Add a BeforeDeleteSelection event to the EventList collection
'of the Document object. The event will start your add-on,
'which takes no arguments.
Set vsoEventList = vsoDocument.EventList
Set vsoEvent = vsoEventList.Add(visEvtCodeBefSelDel, _
visActCodeRunAddon, _
"path \filename ", "")
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。