(Visio) 的 Application.DocumentCreated 事件

建立文件之後發生。

語法

運算式DocumentCreated ()

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
doc 必要 [IVDOCUMENT] 已建立的文件。

註解

DocumentCreated 事件通常會新增至 Microsoft Visio 範本檔案 (.vst) 中的 EventList 集合。 每當依據該範本建立新的文件時,就會觸發此事件的動作。

如果您是使用 Microsoft Visual Basic 或 Visual Basic for Applications (VBA),則本主題中的語法會描述有效處理事件的常用方式。

如果您想要建立自己的 Event 物件,請使用 AddAddAdvise 方法。

若要建立可以執行附加元件的 Event 物件,可使用 Add 方法,因為它可適用於 EventList 集合。

若要建立用於接收通知的 Event 物件,則使用 AddAdvise 方法。

若要尋找您要建立之事件的事件代碼,請參閱 事件代碼

您可以將 DocumentCreated 事件新增至 Application 物件的 EventList 集合、Documents 集合,或是 Document 物件。 前兩者的觸發時機很直接,只要是在 Application 物件或是其 Documents 集合的範圍內開啟或建立文件,就會發生 DocumentCreated 事件。

不過,只有當事件的動作是 visActCodeRunAddon 時,才能將 DocumentCreated 事件新增至 Document 物件的 EventList 集合。 在這種情況下,事件是可以保留的,因為它可以與文件一起儲存。 如果開啟了含有可保留事件的文件,就會觸發該事件的動作。 如果是依據含有可保留事件的文件,或是透過複製該類文件來建立新的文件,則會將 DocumentCreated 事件複製到新文件中,並且觸發該事件的動作。 不過,如果事件的動作是 visActCodeAdvise,則該事件無法保存,因此不會與檔一起儲存;因此,它永遠不會觸發。

您可以將 Application 物件的 EventsEnabled 屬性值設為 False,藉以避免程式碼為了回應 DocumentCreatedDocumentOpenedDocumentAdded 事件而執行,同時避免觸發所有事件。

範例

此 VBA 範例會顯示如何計算新增至繪圖中的圖形數,該繪圖是以稱為 Square 的主圖形為基礎。

當新的繪圖是以含有此程式碼的範本為基礎來建立時,就會執行 DocumentCreated 事件處理常式。 此處理常式會初始化一個用來儲存計數的整數變數 intNumberOfSquares

每當有圖形新增至繪圖頁 (無論該圖形是拖曳自樣板、使用繪圖工具繪製,或是從 [剪貼簿] 貼上) 時,ShapeAdded 事件處理常式就會開始執行。 處理常式會檢查新圖形的 Master 屬性,如果圖形是以 Square 主圖形為基礎,則會遞增 intNumberOfSquares

 
Dim intNumberOfSquares As Integer 
 
Private Sub Document_DocumentCreated(ByVal vsoDocument As Visio.IVDocument) 
 
'Initialize number of squares added. 
 intNumberOfSquares = 0 
 
End Sub 
 
 
Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 
 Dim vsoMaster As Visio.Master 
 
 'Get the Master property of the shape. 
 'the shape was created locally. 
 Set vsoMaster = vsoShape.Master 
 
 'Check whether the shape has a master. If not, 
 If Not (vsoMaster Is Nothing) Then 
 
 'Check whether the master is "Square". 
 If vsoMaster.Name = "Square" Then 
 
 'Increment the count for the number of squares added. 
 intNumberOfSquares = intNumberOfSquares + 1 
 
 End If 
 
 End If 
 
 MsgBox "Number of squares: " & intNumberOfSquares, vbInformation, _ 
 "Document Created Example" 
 
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應