Freigeben über


Project.Change Event (Project)

Tritt auf, wenn die Daten des Projekts geändert werden. Eine Aktion, die sich auf mehrere Elemente gleichzeitig auswirkt, wird als eine einzige Änderung betrachtet.

Syntax

Ausdruck. Change( _pj_ )

Ausdruck Eine Variable, die ein Project-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
pj Erforderlich Projekt Das Projekt, das geändert wurde.

Rückgabewert

Nothing

Hinweise

Das Change-Ereignis tritt nicht bei Aktionen wie dem Wechseln von Ansichten, dem Anwenden von Filtern, dem Ändern der Formatierung usw. auf.

Projektereignisse treten nicht auf, wenn das Projekt in ein anderes Dokument oder eine andere Anwendung eingebettet ist.

Beispiel

Das folgende Beispiel zeigt, wie das ProjectTaskNew -Ereignis Ereignisse auf Projektebene Auffangen kann. In diesem Fall wird der App_ProjectTaskNew -Ereignishandler die globale ProjTaskNew -Variable, die der Änderung -Ereignishandler verwendet. Verwenden Sie ähnlichen Code mit den Ereignissen ProjectResourceNew und ProjectAssignmentNew .

  1. Erstellen Sie ein neues Klassenmodul mit dem Namen EventClassModule, und fügen Sie dann den folgenden Code ein:
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. Fügen Sie in ein separates Modul den folgenden Code ein:
Option Explicit 

Dim X As New EventClassModule 

Sub Initialize_App() 
  Set X.App = MSProject.Application 
  Set X.Proj = Application.ActiveProject 
End Sub
  1. Führen Sie das Initialize_App -Prozedur aus, um die Überwachung der Ereignisse zu starten.

  2. Erstellen Sie einen neuen Vorgang. Das Ereignis bewirkt nun, dass jedes Mal, wenn ein neuer Vorgang hinzugefügt wird, ein Meldungsfeld angezeigt wird.

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.