每当前任任务标记为已完成时,我想要来自MS Project的电子邮件通知。我希望它通过电子邮件发送预先指定的资源和项目经理。我不知道从哪里开始。
答案 0 :(得分:1)
假设通过“发送电子邮件”表示通过Outlook发送电子邮件,则可以使用此方法。 MS Project没有任务级事件,但您可以使用Project_Change事件;你只需要遍历所有任务,看看哪些需要发送电子邮件。
在此示例中,我将收件人的电子邮件地址存储在超链接字段中,并使用Flag1字段指示是否已发送电子邮件。在单击发送按钮之前,电子邮件将保持打开状态供用户查看;保持打开也可以避免弹出消息,用户必须批准对Outlook进行编程访问。
Private Sub Project_Change(ByVal pj As Project)
Dim tsk As Task
Dim succ As Task
Dim ol As Outlook.Application
Dim mail As Outlook.MailItem
For Each tsk In ActiveProject.Tasks
If tsk.PercentComplete = 100 And Not tsk.Flag1 Then
If ol Is Nothing Then
Set ol = GetObject(, "Outlook.Application")
End If
For Each succ In tsk.SuccessorTasks
Set mail = ol.CreateItem(olMailItem)
mail.To = tsk.Hyperlink
mail.Subject = "A precedessor task has been completed"
mail.Body = "Task " & tsk.ID & " which is a predecessor to your task " & succ.ID & " has completed."
mail.Display
Next succ
tsk.Flag1 = True
End If
Next tsk
End Sub
注意:请务必添加MS Outlook对象库引用。