新增 Event 物件,在事件發生時執行附加元件。 Event 物件會新增至您要接收其事件之來源物件的 EventList 集合。
語法
運算式。新增 (EventCode、Action、Target、TargetArgs)
運算式 代表 EventList 物件的變數。
參數
| 名稱 | 必要/選用 | 資料類型 | 描述 |
|---|---|---|---|
| EventCode | 必要 | 整數 | 要擷取的事件。 |
| 動作 | 必要 | 整數 | 要執行的動作。 必須是 Visio 類型程式庫中 VisEventCodes 的成員 visActCodeRunAddon。 |
| 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 物件,而您想要接收此物件的事件。
在執行此巨集之前,請將 pathfilename取代 \ 為 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 支援與意見反應。