EventList.Add 方法 (Visio)

加入 Event 物件,該物件會在事件發生時執行附加元件。 Event物件會新增至您想要接收其事件之來源物件的EventList集合。

語法

運算式新增 (EventCodeActionTargetTargetArgs)

表達 代表 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 物件的 PersistentPersistable 屬性都必須為 True,才能夠具有保存性。

傳遞給 Add 方法的引數會設定 Event 物件的 EventAction (visActCodeRunAddon)、TargetTargetArgs 屬性的初始值。

事件代碼是由 Visio 類型程式庫宣告,並具有前置詞 visEvt。 事件代碼通常是常數的組合。 例如,visEvtAdd + visEvtDocDocumentAdded事件的事件代碼。 若要尋找您想要建立之事件的事件代碼,請參閱 事件代碼

若要建立 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 支援與意見反應