VBA Outlook 自动将文件夹中的所有电子邮件标记为已读
VBA Outlook automatically mark all emails in a folder as read
我在 Outlook 中创建了一个规则。此规则将我的一些电子邮件导出到名为 "Others" 的文件夹,前提是它们的主题包含特定词。通过 VBA,我想自动将文件夹 "Others" 中的所有电子邮件标记为已读,无论是在我启动 outlook 时,还是在我收到需要转到文件夹 "Others" 的电子邮件时。
确保您的宏安全设置设置正确:
对于 Outlook 2010 及更高版本:文件、选项、信任中心、信任中心设置、宏安全否则,您将需要使用 selfcert.exe 签署您的宏以测试它们,我强烈推荐
当电子邮件移至收件箱的子文件夹 ("Others") 时,电子邮件将被标记为已读。
将代码放在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
我在 Outlook 中创建了一个规则。此规则将我的一些电子邮件导出到名为 "Others" 的文件夹,前提是它们的主题包含特定词。通过 VBA,我想自动将文件夹 "Others" 中的所有电子邮件标记为已读,无论是在我启动 outlook 时,还是在我收到需要转到文件夹 "Others" 的电子邮件时。
确保您的宏安全设置设置正确:
对于 Outlook 2010 及更高版本:文件、选项、信任中心、信任中心设置、宏安全否则,您将需要使用 selfcert.exe 签署您的宏以测试它们,我强烈推荐
当电子邮件移至收件箱的子文件夹 ("Others") 时,电子邮件将被标记为已读。
将代码放在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