Событие Project.Change (Project)
Происходит при изменении данных в проекте. Действие, затрагивающее сразу несколько элементов, считается одним изменением.
Синтаксис
выражение. Change
( _pj_
)
Выражение Переменная, представляющая объект Project .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Pj | Обязательный | Проект | Измененный проект. |
Возвращаемое значение
Nothing
Замечания
Событие Change не возникает для таких действий, как переключение представлений, применение фильтров, изменение форматирования и т. д.
События проекта не возникают, когда проект внедрен в другой документ или приложение.
Пример
В следующем примере показано, как событие ProjectTaskNew может перехватывать события уровня проекта. В этом случае обработчик событий App_ProjectTaskNew задает глобальную переменную ProjTaskNew , которую использует обработчик событий Change . Используйте аналогичный код с событиями 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 и обратная связь.