Project.Change 事件 (Project)
当对项目中的数据进行更改时发生。 一个能立即影响到几项的操作被认为是一次更改。
语法
expression。 Change
( _pj_
)
表达 一个代表 Project 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
pj | 必需 | Project | 已更改的项目。 |
返回值
Nothing
备注
更改 事件 does 不进行操作,如切换视图应用筛选器、 更改格式等。
当项目嵌入到另一个文档或应用程序中时,不会发生项目事件。
示例
下面的示例演示如何 ProjectTaskNew 事件可捕获项目级事件。 在这种情况下, App_ProjectTaskNew 事件处理程序设置 更改 事件处理程序使用的全局 ProjTaskNew 变量。 将类似的代码用于 ProjectResourceNew 和 ProjectAssignmentNew 事件。
- 创建名为 EventClassModule ,一个新的类模块,然后插入以下代码:
Option Explicit
Option Base 1
Public WithEvents App As Application
Public WithEvents Proj As Project
Dim NewTaskIDs() As Integer
Dim NumNewTasks As Integer
Dim ProjTaskNew As Boolean
Private Sub App_ProjectTaskNew(ByVal pj As Project, ByVal ID As Long)
NumNewTasks = NumNewTasks + 1
If ProjTaskNew Then
ReDim Preserve NewTaskIDs(NumNewTasks) As Integer
Else
ReDim NewTaskIDs(NumNewTasks) As Integer
End If
NewTaskIDs(NumNewTasks) = ID
ProjTaskNew = True
End Sub
Private Sub Proj_Change(ByVal pj As Project)
Dim NewTaskID As Variant
If ProjTaskNew Then
For Each NewTaskID In NewTaskIDs
MsgBox "New Task Name: " & ActiveProject.Tasks.UniqueID(NewTaskID).Name
Next NewTaskID
NumNewTasks = 0
ProjTaskNew = False
End If
End Sub
- 在一个独立模块中,插入以下代码:
Option Explicit
Dim X As New EventClassModule
Sub Initialize_App()
Set X.App = MSProject.Application
Set X.Proj = Application.ActiveProject
End Sub
运行 Initialize_App 过程开始侦听事件。
新建一项任务。 每次添加新任务时该事件处理程序都会弹出一个消息框。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。