次の方法で共有


Project.Change イベント (Project)

プロジェクトのデータが変更されたときに発生します。 1 つの操作が同時に複数の項目に影響を与えた場合は、1 つの変更として扱われます。

構文

Change( _pj_ )

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

パラメーター

名前 必須 / オプション データ型 説明
pj 必須 Project 変更されたプロジェクト。

戻り値

Nothing

注釈

Change イベントがないビューの切り替え、フィルターの適用、書式の変更などの操作が発生するとします。

プロジェクトが別のドキュメントまたはアプリケーションに埋め込まれている場合、プロジェクト イベントは発生しません。

次の使用例は、 ProjectTaskNew イベントがプロジェクト レベルのイベントをトラップする方法を示しています。 この例では、 App_ProjectTaskNew イベント ハンドラーは、 変更 イベント ハンドラーを使用して ProjTaskNew のグローバル変数を設定します。 ProjectResourceNew イベントと ProjectAssignmentNew イベントで同様のコードを使用します。

  1. 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
  1. 他のモジュールで、次のコードを挿入します。
Option Explicit 

Dim X As New EventClassModule 

Sub Initialize_App() 
  Set X.App = MSProject.Application 
  Set X.Proj = Application.ActiveProject 
End Sub
  1. イベントのリッスンを開始するのには Initialize_App の手順を実行します。

  2. 新しいタスクを作成します。 新しいタスクが追加されるたびに、イベント ハンドラーによりメッセージ ボックスが表示されます。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。