Application.ProjectBeforeTaskChange 事件 (Project)
發生在使用者變更任務欄位的值之前。
語法
expression。 ProjectBeforeTaskChange
( _tsk_
, _Field_
, _NewVal_
, _Cancel_
)
expression 代表 Application 物件的變數。
參數
名稱 | 必要/選用 | 資料類型 | 描述 |
---|---|---|---|
tsk | 必要 | Task | 欄位將有所變更的任務。 |
Field | 必要 | Long | 變更 [] 欄位。 如果使用者變更一個以上的欄位,則在變更每個欄位時都會引發該事件。 可以為其中一個 PjField 常數。 |
NewVal | 必要 | Variant | 欄位 與指定之欄位的新值。 |
Cancel | 必要 | 布林值 | False 事件發生時。 如果事件程序會將此引數設定為 True ,不會變更 欄位 與指定之欄位的值。 |
註解
當專案內嵌在另一份檔或應用程式中時,不會發生專案事件。
ProjectBeforeTaskChange 事件不會發生變更時幅資料,當工作的詳細資訊表單中的條件約束資料變更,任務分割的操作甘特圖,其任務長條圖時對大綱層級或大綱編號在儲存比較基準,在清除比較基準,貼上整個的任務列是、 操作資源資料庫時所做的變更時當插入或移除子專案時,或是已在使用自訂表單進行變更時。 如需詳細資訊,請參閱使用 Application 和 Project 物件的相關事件。
範例
下列範例會在任務的工期增加時以及多少通知使用者。 這個範例需要新的類別模組和其他程式碼它才會生效。
Private Sub App_ProjectBeforeTaskChange(ByVal tsk As Task, ByVal Field As PjField, _
ByVal NewVal As Variant, Cancel As Boolean)
Dim TaskDuration As Long
TaskDuration = Val(NewVal) * 480 ' Convert days to minutes
If Field = pjTaskDuration And TaskDuration > tsk.Duration Then
If (TaskDuration - tsk.Duration) \ 480 < 1 Then
MsgBox "The task " & Chr$(34) & tsk.Name & Chr$(34) & " is now " & _
(TaskDuration - tsk.Duration) / 480 & (TaskDuration - tsk.Duration) \ 480 & _
" day(s) longer."
Else
MsgBox "The task " & Chr$(34) & tsk.Name & Chr$(34) & " is now " & _
(TaskDuration - tsk.Duration) / 480 & " day(s) longer."
End If
End If
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應