我在Outlook中创建了一条规则。如果某些邮件的主题包含特定单词,该规则将把这些邮件导出到名为“其他”的文件夹中。通过使用VBA,我希望能自动将“其他”文件夹中的所有邮件标记为已读,不论是在启动Outlook时还是收到需要放入“其他”文件夹的邮件时。
确保您的宏安全设置正确:
对于 Outlook 2010 及以上版本:文件,选项,信任中心,信任中心设置,宏安全性。否则,你需要使用 selfcert.exe 来签署你的宏以进行测试,我强烈建议这样做。
当电子邮件被移动到收件箱的子文件夹 ("其他") 中时,将标记为已读。
将代码放置在 ThisOutlookSession 模块中,您必须重新启动 Outlook。
在 Outlook 2010 上测试通过。
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Folder As Outlook.MAPIFolder
Set olNs = Application.GetNamespace("MAPI")
Set Folder = olNs.GetDefaultFolder(olFolderInbox)
'// change the folder if need here
Set Folder = olFolder.Folders("Others")
Set Items = Folder.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
Item.UnRead = False
Item.Save
End Sub