ProjectBeforeTaskChange Event
Occurs before the user changes the value of a task field.
Syntax
Private Sub object**_ProjectBeforeTaskChange(ByVal** tsk As MSProject.Task, ByVal Field As PjField, ByVal NewVal As Variant, Cancel As Boolean)
object An object of type Application declared with events in a class module. For more information, see Using events with the Application object.
tsk The task whose field is being changed.
PjField
pjTaskActualCost | pjTaskHyperlinkSubAddress |
pjTaskActualDuration | pjTaskID |
pjTaskActualFinish | pjTaskIgnoreResourceCalendar |
pjTaskActualOvertimeCost | pjTaskIndex |
pjTaskActualOvertimeWork | pjTaskIndicators |
pjTaskActualOvertimeWorkProtected | pjTaskIsAssignment |
pjTaskActualStart | pjTaskLateFinish |
pjTaskActualWork | pjTaskLateStart |
pjTaskActualWorkProtected | pjTaskLevelAssignments |
pjTaskACWP | pjTaskLevelCanSplit |
pjTaskAssignmentDelay | pjTaskLevelDelay |
pjTaskAssignmentUnits | pjTaskLinkedFields |
pjTaskBaseline1-10Cost | pjTaskMarked |
pjTaskBaseline1-10Duration | pjTaskMilestone |
pjTaskBaseline1-10DurationEstimated | pjTaskName |
pjTaskBaseline1-10Finish | pjTaskNotes |
pjTaskBaseline1-10Start | pjTaskNumber1-20 |
pjTaskBaseline1-10Work | pjTaskObjects |
pjTaskBaselineCost | pjTaskOutlineCode1-10 |
pjTaskBaselineDuration | pjTaskOutlineLevel |
pjTaskBaselineDurationEstimated | pjTaskOutlineNumber |
pjTaskBaselineFinish | pjTaskOverallocated |
pjTaskBaselineStart | pjTaskOvertimeCost |
pjTaskBaselineWork | pjTaskOvertimeWork |
pjTaskBCWP | pjTaskParentTask |
pjTaskBCWS | pjTaskPercentComplete |
pjTaskCalendar | pjTaskPercentWorkComplete |
pjTaskConfirmed | pjTaskPhysicalPercentComplete |
pjTaskConstraintDate | pjTaskPredecessors |
pjTaskConstraintType | pjTaskPreleveledFinish |
pjTaskContact | pjTaskPreleveledStart |
pjTaskCost | pjTaskPriority |
pjTaskCost1-10 | pjTaskProject |
pjTaskCostRateTable | pjTaskRecurring |
pjTaskCostVariance | pjTaskRegularWork |
pjTaskCPI | pjTaskRemainingCost |
pjTaskCreated | pjTaskRemainingDuration |
pjTaskCritical | pjTaskRemainingOvertimeCost |
pjTaskCV | pjTaskRemainingOvertimeWork |
pjTaskCVPercent | pjTaskRemainingWork |
pjTaskDate1-10 | pjTaskResourceEnterpriseMultiValueCode20-29 |
pjTaskDeadline | pjTaskResourceEnterpriseOutlineCode1-29 |
pjTaskDelay | pjTaskResourceEnterpriseRBS |
pjTaskDemandedRequest | pjTaskResourceGroup |
pjTaskDuration | pjTaskResourceInitials |
pjTaskDuration1-10 | pjTaskResourceNames |
pjTaskDuration1-10Estimated | pjTaskResourcePhonetics |
pjTaskDurationVariance | pjTaskResourceType |
pjTaskEAC | pjTaskResponsePending |
pjTaskEarlyFinish | pjTaskResume |
pjTaskEarlyStart | pjTaskResumeNoEarlierThan |
pjTaskEarnedValueMethod | pjTaskRollup |
pjTaskEffortDriven | pjTaskSheetNotes |
pjTaskEnterpriseCost1-10 | pjTaskSPI |
pjTaskEnterpriseDate1-30 | pjTaskStart |
pjTaskEnterpriseDuration1-10 | pjTaskStart1-10 |
pjTaskEnterpriseFlag1-20 | pjTaskStartSlack |
pjTaskEnterpriseNumber1-40 | pjTaskStartVariance |
pjTaskEnterpriseOutlineCode1-30 | pjTaskStatus |
pjTaskEnterpriseProjectCost1-10 | pjTaskStatusIndicator |
pjTaskEnterpriseProjectDate1-30 | pjTaskStop |
pjTaskEnterpriseProjectDuration1-10 | pjTaskSubproject |
pjTaskEnterpriseProjectFlag1-20 | pjTaskSubprojectReadOnly |
pjTaskEnterpriseProjectNumber1-40 | pjTaskSuccessors |
pjTaskEnterpriseProjectOutlineCode1-30 | pjTaskSummary |
pjTaskEnterpriseProjectText1-40 | pjTaskSV |
pjTaskEnterpriseText1-40 | pjTaskSVPercent |
pjTaskEstimated | pjTaskTCPI |
pjTaskExternalTask | pjTaskTeamStatusPending |
pjTaskFinish | pjTaskText1-30 |
pjTaskFinish1-10 | pjTaskTotalSlack |
pjTaskFinishSlack | pjTaskType |
pjTaskFinishVariance | pjTaskUniqueID |
pjTaskFixedCost | pjTaskUniquePredecessors |
pjTaskFixedCostAccrual | pjTaskUniqueSuccessors |
pjTaskFixedDuration | pjTaskUpdateNeeded |
pjTaskFlag1-20 | pjTaskVAC |
pjTaskFreeSlack | pjTaskWBS |
pjTaskGroupBySummary | pjTaskWBSPredecessors |
pjTaskHideBar | pjTaskWBSSuccessors |
pjTaskHyperlink | pjTaskWork |
pjTaskHyperlinkAddress | pjTaskWorkContour |
pjTaskHyperlinkHref | pjTaskWorkVariance |
pjTaskHyperlinkScreenTip |
NewVal The new value for the field specified with Field.
Cancel False when the event occurs. If the event procedure sets this argument to True, the value for the field specified with Field is not changed.
Remarks
Microsoft Office Project 2003 events do not occur when the project is embedded in another document or application.
The ProjectBeforeTaskChange event doesn't occur when timescaled data changes, when constraint data in the Task Details Form changes, when a task is split by manipulating its task bar on the Gantt Chart, when changes are made to outline level or outline number, when a baseline is saved, when a baseline is cleared, when an entire task row is pasted, during resource pool operations, when inserting or removing a subproject, or when changes have been made using a custom form.
Example
This example informs the user when a task's duration increases and by how much. This example requires a new class module and additional code for it to have an effect. For more information, see Using events with the Application object.
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
Applies to | Application Object
See Also | ProjectBeforeAssignmentChange Event | ProjectBeforeResourceChange Event | ProjectBeforeTaskChange2 Event | ProjectBeforeTaskDelete Event | ProjectBeforeTaskNew Event