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 .
- 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
- 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
Führen Sie das Initialize_App -Prozedur aus, um die Überwachung der Ereignisse zu starten.
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.