共用方式為


Project.Change 事件 (Project)

發生於專案中的資料變更時。 一個同時影響到數個項目的動作被視為一個變更。

語法

expressionChange( _pj_ )

表達 代表 Project 物件的變數。

參數

名稱 必要/選用 資料類型 描述
pj 必要 Project 已變更的專案。

傳回值

Nothing

註解

Change 事件不會發生的動作,例如切換檢視、 套用篩選器、 變更格式設定等等。

當專案內嵌在另一份檔或應用程式中時,不會發生專案事件。

範例

下列範例顯示如何 ProjectTaskNew 事件可以之外捕捉專案層級事件。 在此例中 App_ProjectTaskNew 事件處理常式會設定 變更 事件處理常式會使用通用 ProjTaskNew 變數。 使用類似的程式碼搭配 ProjectResourceNewProjectAssignmentNew 事件。

  1. 建立新的類別模組名稱為 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
  1. 在不同的模組中,插入下列程式碼:
Option Explicit 

Dim X As New EventClassModule 

Sub Initialize_App() 
  Set X.App = MSProject.Application 
  Set X.Proj = Application.ActiveProject 
End Sub
  1. 執行 Initialize_App 程序開始聆聽事件。

  2. 建立新任務。 每次新增任務時,此事件處理常式都會顯示訊息方塊。

支援和意見反應

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