次の方法で共有


Application.ProjectBeforeTaskChange イベント (Project)

タスク フィールドの値を変更する前に発生します。

構文

ProjectBeforeTaskChange( _tsk_, _Field_, _NewVal_, _Cancel_ )

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
tsk 必須 Task フィールドが変更されるタスクを指定します。
Field 必須 長整数型 (Long) 変更するフィールドです。 複数のフィールドを変更する場合、変更を行うたびにイベントが発生します。 使用できる定数は、 PjField クラスの定数のいずれかです。
NewVal 必須 バリアント型 (Variant) フィールド で指定されるフィールドの新しい値。
Cancel 必須 Boolean 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 のサポートおよびフィードバックを参照してください。