Application.ProjectBeforeTaskChange-Ereignis (Project)
Tritt ein, bevor der Benutzer den Wert eines Vorgangsfelds ändert.
Syntax
Ausdruck.
ProjectBeforeTaskChange
( _tsk_
, _Field_
, _NewVal_
, _Cancel_
)
expression Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
tsk | Erforderlich | Task | Der Vorgang, dessen Feld geändert wird. |
Field | Erforderlich | Long | Das Feld geändert wird. Wenn der Benutzer mehrere Felder ändert, wird dieses Ereignis für jedes geänderte Feld ausgelöst. Dies kann eine der folgenden PjField -Konstanten sein: |
NewVal | Erforderlich | Variant | Der neue Wert für das mit Field angegebene Feld. |
Cancel | Erforderlich | Boolean | False, Wenn das Ereignis auftritt. Wenn die Ereignisprozedur dieses Argument auf True festgelegt wird, wird der Wert für das mit Field angegebene Feld nicht geändert werden. |
Hinweise
Projektereignisse treten nicht auf, wenn das Projekt in ein anderes Dokument oder eine andere Anwendung eingebettet ist.
ProjectBeforeTaskChange -Ereignis tritt nicht auf, wenn Zeitskalendaten Einschränkung Daten in den Vorgang: Einzelheiten ändert, wenn eine Aufgabe durch Bearbeiten der Vorgangsbalken im Balkendiagramm, wenn Änderungen, zur Ebene oder Gliederung Anzahl Gliederung vorgenommen werden, wenn Sie einen Basisplan speichern, wenn ein Basisplan gelöscht wird, wenn eine gesamte Vorgangszeile, während Resource Pool Vorgänge eingefügt wird, geteilt ist, ändert, , beim Einfügen und Entfernen eines Teilprojekts oder wenn Änderungen mithilfe einer benutzerdefinierten Maske vorgenommen wurden. Weitere Informationen und Beispielcode zum Erstellen und Testen eines Ereignishandlers finden Sie unter Verwenden von Ereignissen mit Anwendungs- und Projektobjekten.
Beispiel
Im folgenden Beispiel wird der Benutzer darüber informiert, wenn die Dauer eines Vorgangs erhöht und um wie viel. Dieses Beispiel erfordert ein neues Klassenmodul und von zusätzlichem Code dafür wirksam.
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
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.