Application.DocumentCreated 事件 (Visio)

在创建文档之后,发生此事件。

语法

表达式DocumentCreated (doc)

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 对象、Documents 集合或 Document 对象的 EventList 集合中。 前两个集合较为简单:如果在 Application 对象或其 Documents 集合的范围内打开或创建文档,则发生 DocumentCreated 事件。

但是,仅当该事件的操作是 visActCodeRunAddon 时,将 DocumentCreated 事件添加到 Document 对象的 EventList 集合中才有意义。 在此情况下,该事件是可永久存在的,它可与文档一起存储。 如果打开的文档包含永久事件,则触发该事件的操作。 如果新文档基于包含永久事件的文档或是从该文档复制而来,则会将 DocumentCreated 事件复制到新文档中,并触发该事件的操作。 但是,如果事件的操作是 visActCodeAdvise,则该事件不可持久保存,因此不会随文档一起存储;因此,它永远不会触发。

通过将 Application 对象的 EventsEnabled 属性值设为 False,可以避免为响应 DocumentCreatedDocumentOpenedDocumentAdded 事件而运行代码,同时避免触发所有事件。

示例

此 VBA 示例说明了如何对添加到绘图中的、基于名为“正方形”的主控形状的形状进行计数。

当创建的新图形所基于的模板包含这段代码时,将触发 DocumentCreated 事件处理程序。 该处理程序将初始化整型变量 intNumberOfSquares,以用于存储计数。

每当向绘图页中添加形状时(无论该形状是从模具中拖动、使用绘图工具绘制还是从剪贴板中粘贴),都会运行 ShapeAdded 事件处理程序。 处理程序检查新形状的 Master 属性,如果形状基于 平方 母版,则递增 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。