Share via


Application.ProjectBeforeTaskChange 事件 (Project)

發生在使用者變更任務欄位的值之前。

語法

expressionProjectBeforeTaskChange( _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 支援與意見反應