Можно ли как-то заставить Outlook настроить прочитанное письмо, для которого не назначены категории, обратно непрочитанным?
2 ответа
Это довольно просто. Просто создайте пользовательскую папку поиска, назовите ее по своему вкусу (скажем, "Не классифицируйте"), выберите нужные папки, укажите критерии на вкладке « Дополнительно » следующим образом:
Поле: Все почтовые поля -> Категории
Состояние: пусто
Нажмите Добавить в список, а затем ОК, ОК.
Теперь вы можете выбрать все сообщения в этой папке и пометить их как непрочитанные.
Попробуйте следующее:
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
подтверждает это), однако я не проверял, чтобы эти письма стали непрочитанными.
В результате вы должны сделать резервную копию своего почтового ящика, прежде чем начать.