【问题标题】:Email Notification from MS Project using VB macro使用 VB 宏来自 MS Project 的电子邮件通知
【发布时间】:2014-06-05 23:47:55
【问题描述】:

每当前置任务被标记为已完成时,我都希望收到来自 MS Project 的电子邮件通知。我希望它通过电子邮件发送预先指定的资源和项目经理。我不知道从哪里开始。

【问题讨论】:

    标签: vba outlook ms-project


    【解决方案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 对象库引用。

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 2016-05-11
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多