Vba 如何捕获在没有自定义表单脚本的情况下完成的Outlook 2013任务
我们已启用,但无法重新启用(公司政策)。正常VBA工作正常Vba 如何捕获在没有自定义表单脚本的情况下完成的Outlook 2013任务,vba,outlook,task,Vba,Outlook,Task,我们已启用,但无法重新启用(公司政策)。正常VBA工作正常 我需要在任务标记为完成时发送电子邮件。当任务标记为“完成”时,如何通知我,以便我可以发送电子邮件?我可以使用任何标准的应用程序事件,但似乎没有一个对我有帮助。谢谢。您可以使用任务文件夹上的Items.ItemChange事件(可以使用Application.Session.GetDefaultFolder(olFolderTasks)检索该事件)。使用了Dmitry Streblechenko提供的指导之后,这就是有效的代码。张贴完整性
我需要在任务标记为完成时发送电子邮件。当任务标记为“完成”时,如何通知我,以便我可以发送电子邮件?我可以使用任何标准的应用程序事件,但似乎没有一个对我有帮助。谢谢。您可以使用任务文件夹上的
Items.ItemChange
事件(可以使用Application.Session.GetDefaultFolder(olFolderTasks)
检索该事件)。使用了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
希望这能帮助其他想这样做的人。到目前为止,一切都很好。看起来是个好办法。每天学习有关Outlook编程的更多信息。如果回答回答了您的问题,请将其标记为这样。非常感谢。