
Outlook 2010 (32-разрядная версия) Windows 7 (64-разрядная версия)
У меня есть система с Outlook 2010 (режим кэширования не включен), и некоторые подпапки в почтовом ящике пользователя стали значительно раздутыми (содержат более 50000 сообщений). Я хотел бы очистить их как можно эффективнее (сохранив при этом имя/место каталога).
Если я нажму правой кнопкой мыши на папку и выберу «Удалить все», то получу запрос, в котором меня спросят, уверен ли я, что хочу переместить все элементы этой папки в папку «Удаленные». Когда я нажимаю «да», я вижу полосу прогресса «подготовки к удалению»… и когда она достигает конца, ничего не происходит. Полоса прогресса закрывается изящно, но сообщения все еще находятся в каталоге.
Есть ли альтернативный способ сделать это?
решение1
Удалить всеперемещает только элементы, которые находятся в выбранной папке (исключая подпапки). Для достижения желаемого результата вам нужно будет написать скрипт VBA, например:
Private Sub CleanSubfolders(ByVal Folder As Folder)
For i = Folder.Items.Count To 1 Step -1
Folder.Items(i).Delete
Next
For Each Folder In Folder.Folders
CleanSubfolders Folder
Next
End Sub
Sub CleanFolders()
Set Folder = Session.PickFolder()
If Not Folder Is Nothing Then
CleanSubfolders Folder
End If
End Sub
ЗапускЧистыеПапкимакрос эффективно удалит все элементы в выбранной папке, включая все ее подпапки.
решение2
Мне больше нравится ответ @thims, поскольку он конкретно выполняет идентичную задачу, которую я пытался сделать. При этом я недавно заметил, что постоянное удаление сообщений также очищает папку.
Для этого удерживайте SHIFT
клавишу, щелкнув правой кнопкой мыши по папке и выберите Delete All
. На этот раз пользователь получит запрос на удаление всех сообщений навсегда (вместо перемещения в корзину). Это работает, поэтому я подозреваю, что основная проблема здесь — ошибка Outlook, перемещающая огромное количество сообщений между папками.