有没有办法让 Outlook 将没有分配任何类别的已读电子邮件重新设置为未读?
答案1
请尝试以下操作:
Public Sub Mark_Unread_If_No_Category()
Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI")
Dim olFolder As Outlook.MAPIFolder: Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Dim Item As Object
For Each Item In olFolder.Items
If Item.Class = 43 Then ' 43 = an email
Dim oMail As Outlook.MailItem: Set oMail = Item
If oMail.Categories = "" Then
Debug.Print "Marking as unread: " & oMail.Subject
oMail.UnRead = True
oMail.Save
End If
Set oMail = Nothing
End If
DoEvents ' So Outlook doesn't lock up whilst running
Next
Set olFolder = Nothing
Set objNS = Nothing
End Sub
我知道它可以正确查看收件箱并正确找到没有类别的电子邮件(Debug.Print
确认了这一点)但我还没有检查这些电子邮件是否未读。
因此,在尝试之前您应该备份您的收件箱。
答案2
这很简单。只需创建自定义搜索文件夹,根据需要命名(例如,“未分类”),选择所需的文件夹,指定标准在先进的选项卡如下:
场地:所有邮件字段 -> 类别
健康)状况:是空的
点击添加到列表然后好的,好的。
现在您可以选择此文件夹中的所有邮件并将其全部标记为未读。