Evento Project.Change (Project)

Ocorre quando uma alteração é feita nos dados do projeto. Uma ação que afeta vários itens ao mesmo tempo será considerada como uma alteração só.

Sintaxe

expression. Change( _pj_ )

Expressão Uma variável que representa um objeto Project .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
pj Obrigatório Project O projeto que foi alterado.

Valor de retorno

Nothing

Comentários

O evento Change não ocorre para ações como alternar modos, aplicar filtros, alterar formatação e assim por diante.

Eventos de projeto não ocorrem quando o projeto está inserido em outro documento ou aplicativo.

Exemplo

O exemplo a seguir mostra como o evento ProjectTaskNew pode capturar eventos no nível do projeto. Nesse caso, o manipulador de eventos App_ProjectTaskNew define a variável ProjTaskNew global que usa o manipulador de eventos de alteração. Use código semelhante com os eventos ProjectResourceNew e ProjectAssignmentNew .

  1. Crie um novo módulo de classe denominado EventClassModule e insira o código a seguir:
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. Em um módulo separado, insira o seguinte código:
Option Explicit 

Dim X As New EventClassModule 

Sub Initialize_App() 
  Set X.App = MSProject.Application 
  Set X.Proj = Application.ActiveProject 
End Sub
  1. Execute o procedimento Initialize_App para começar a ouvir os eventos.

  2. Crie uma nova tarefa. O manipulador de eventos mostrará uma caixa de mensagem sempre que uma nova tarefa for adicionada.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.