ProjectTaskNew Event

Occurs when a new task is created.

In Microsoft Office Project 2003, you can listen to project-level events from outside of Microsoft Visual Basic for Applications (VBA).

Syntax

Private Sub object_ProjectTaskNew(ByVal   pj   As MSProject.Project,   ID   As Long)

object     An object of type Application declared with events in a class module. For more information, see Using events with the Application object.

pj     The project where the task was created.

ID     The ID of the task that was just created.

Example

The following example shows how the ProjectTaskNew event can be used to listen to Project-level events (in this case, the change event). The same can also be applied to ProjectResourceNew and ProjectAssignmentNew events as well.

  1. Create a new class module called "EventClassModule." Insert the following code:

    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
    
  2. In a separate module, insert the following code:

    Option Explicit
    
    Dim X As New EventClassModule
    
    Sub Initialize_App()
        Set X.App = MSProject.Application
        Set X.Proj = Application.ActiveProject
    End Sub
    
  3. Run the Initialize_App procedure to start listening to the events.

  4. Create a new task, and the event causes a message box to pop up every time a new task is added.

Applies to | Application Object

See Also | ProjectAssignmentNew Event | ProjectResourceNew Event