Visio) (Document.DocumentCreated 事件

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

语法

表达式。DocumentCreated (文档)

表达式 表示 Document 对象的变量。

参数

名称 必需/可选 数据类型 说明
doc 必需 [IVDOCUMENT] 已创建的文档。

备注

DocumentCreated 事件通常添加到 Microsoft Visio 模板文件 (.vst) 的 EventList 集合中。 每当基于该模板创建新文档时,就会触发该事件的操作。

如果您使用 Microsoft Visual Basic 或 Visual Basic for Applications (VBA),则此主题中的语法描述的是一种通用而有效的事件处理方法。

如果要创建自己的 Event 对象,请使用 Add 或 AddAdvise 方法。

若要创建可运行加载项的 Event 对象,请使用 Add 方法,因为它适用于 EventList 集合。

若要创建可接收通知的 Event 对象,请使用 AddAdvise 方法。

若要查找要创建的事件的事件代码,请参阅事件代码。

DocumentCreated 事件可以添加到 Application 对象、Documents 集合或 Document 对象的 EventList 集合中。 前两个集合较为简单:如果在 Application 对象或其 Documents 集合的范围内打开或创建文档,则发生 DocumentCreated 事件。

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

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

示例

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

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

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