我经常在 VBA 和 Outlook 中使用事件处理程序。其中之一是将任何已删除的项目标记为已读。
Private Sub deletedItems_ItemAdd(ByVal Item As Object)
Application_Startup
On Error Resume Next
Item.UnRead = False
End Sub
通过以下方式声明:
Private WithEvents deletedItems As Outlook.Items
并初始化Application_Startup
为:
Dim olNameSpace As Outlook.NameSpace
Set olNameSpace = olApp.GetNamespace("MAPI")
Set deletedItems = olNameSpace.GetDefaultFolder(olFolderDeletedItems).Items
不幸的是,如果我一次删除多个项目,这不会影响所有项目。
有没有办法我可以做些什么来以某种方式劫持这个过程?我研究过使用_beforeDelete事件,但您必须每次都正确设置该项目,如果我能做到,这个问题无论如何都不存在。
显然我不清楚 - 我的用例是当我通过收件箱、草稿等中的删除键删除消息时。