如何捕获没有自定义表单脚本完成的Outlook 2013任务

时间:2019-06-28 11:25:35

标签: outlook task outlook-vba

我们有Outlook 2013 which now comes with Custom Form Script disabled,并且我们无法重新启用它(公司政策)。普通的VBA可以正常工作。

当任务标记为完成时,我需要发送电子邮件。任务标记为完成时如何通知我,以便我可以发送电子邮件?我可以使用任何标准的应用程序事件,但是似乎没有一个对我有帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在Tasks文件夹中使用Items.ItemChange事件(可以使用Application.Session.GetDefaultFolder(olFolderTasks)来检索)。

答案 1 :(得分:0)

使用了Dmitry Streblechenko给出的指导,这是有效的代码。发布内容完整。

Public WithEvents myOlItems As Outlook.Items

Public Sub Initialize_handler()
    Set myOlItems = Application.Session.GetDefaultFolder(olFolderTasks).Items
End Sub

Private Sub myOlItems_ItemChange(ByVal Item As Object)
    ' https://docs.microsoft.com/en-us/office/vba/api/outlook.taskitem
    If Item.Class = olTask Then
        If Item.Complete Then
            'Creates a new email item and modifies its properties
            Dim objMail As Outlook.mailItem
            Set objMail = Application.CreateItem(olMailItem)
            With objMail
                .BodyFormat = olFormatHTML
                .To = ""
                .CC = ""
                .HTMLBody = "Stuff"
                .Display
            End With
        End If
    End If
End Sub

希望可以帮助希望这样做的其他人。