Project.Change イベント (Project)
プロジェクトのデータが変更されたときに発生します。 1 つの操作が同時に複数の項目に影響を与えた場合は、1 つの変更として扱われます。
構文
式。 Change
( _pj_
)
式Project オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
pj | 必須 | Project | 変更されたプロジェクト。 |
戻り値
Nothing
注釈
Change イベントがないビューの切り替え、フィルターの適用、書式の変更などの操作が発生するとします。
プロジェクトが別のドキュメントまたはアプリケーションに埋め込まれている場合、プロジェクト イベントは発生しません。
例
次の使用例は、 ProjectTaskNew イベントがプロジェクト レベルのイベントをトラップする方法を示しています。 この例では、 App_ProjectTaskNew イベント ハンドラーは、 変更 イベント ハンドラーを使用して ProjTaskNew のグローバル変数を設定します。 ProjectResourceNew イベントと ProjectAssignmentNew イベントで同様のコードを使用します。
- EventClassModule をという名前の新しいクラス モジュールを作成し、次のコードを挿入します。
Option Explicit
Option Base 1
Public WithEvents App As Application
Public WithEvents Proj As Project
Dim NewTaskIDs() As Integer
Dim NumNewTasks As Integer
Dim ProjTaskNew As Boolean
Private Sub App_ProjectTaskNew(ByVal pj As Project, ByVal ID As Long)
NumNewTasks = NumNewTasks + 1
If ProjTaskNew Then
ReDim Preserve NewTaskIDs(NumNewTasks) As Integer
Else
ReDim NewTaskIDs(NumNewTasks) As Integer
End If
NewTaskIDs(NumNewTasks) = ID
ProjTaskNew = True
End Sub
Private Sub Proj_Change(ByVal pj As Project)
Dim NewTaskID As Variant
If ProjTaskNew Then
For Each NewTaskID In NewTaskIDs
MsgBox "New Task Name: " & ActiveProject.Tasks.UniqueID(NewTaskID).Name
Next NewTaskID
NumNewTasks = 0
ProjTaskNew = False
End If
End Sub
- 他のモジュールで、次のコードを挿入します。
Option Explicit
Dim X As New EventClassModule
Sub Initialize_App()
Set X.App = MSProject.Application
Set X.Proj = Application.ActiveProject
End Sub
イベントのリッスンを開始するのには Initialize_App の手順を実行します。
新しいタスクを作成します。 新しいタスクが追加されるたびに、イベント ハンドラーによりメッセージ ボックスが表示されます。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。