Project.Change 事件 (Project)
發生於專案中的資料變更時。 一個同時影響到數個項目的動作被視為一個變更。
語法
expression。 Change
( _pj_
)
表達 代表 Project 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
pj | 必要 | Project | 已變更的專案。 |
傳回值
Nothing
註解
Change 事件不會發生的動作,例如切換檢視、 套用篩選器、 變更格式設定等等。
當專案內嵌在另一份檔或應用程式中時,不會發生專案事件。
範例
下列範例顯示如何 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 支援與意見反應。