По умолчанию вы можете запускать правило только в одной папке за раз. В этой статье мы научим вас, как использовать фрагмент кода VBA для запуска определенного правила во всех почтовых папках.
Outlook позволяет пользователям запускать правило вручную. Вы можете просто открыть диалоговое окно «Правила и предупреждения» и нажать кнопку «Запустить правила сейчас». В следующем диалоговом окне выберите определенное правило и выберите папку, в которой вы хотите запустить это правило. Но если вы хотите быстро запустить правило во всех почтовых папках, вы можете использовать следующий код VBA.

Быстро запустить определенное правило во всех почтовых папках
- В первую очередь, сtarв вашей программе Outlook.
- Затем в главном окне Outlook нажмите клавиши «Alt + F11».
- Далее в появившемся окне «Microsoft Visual Basic для приложений» следует открыть неиспользуемый модуль.
- Затем скопируйте приведенный ниже код VBA в окно этого модуля. Кроме того, вы должны изменить некоторые строки в зависимости от вашего случая, например, имя правила.
Sub RunSpecificRule_AllMailFolders()
Dim objStores As Outlook.Stores
Dim objStore As Outlook.Store
Dim objPSTFile As Outlook.Folder
Dim objFolders As Outlook.folders
Dim objFolder As Object
Set objStores = Outlook.Application.Session.Stores
'Process all Outlook PST files in your Outlook
For Each objStore In objStores
Set objPSTFile = objStore.GetRootFolder
For Each objFolder In objPSTFile.folders
Call ProcessFolders(objFolder)
Next
Next
MsgBox "Complete!", vbExclamation + vbOKOnly, "Run Rule "
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim objRules As Outlook.Rules
Dim objRule As Outlook.Rule
Dim objSubfolder As Outlook.Folder
Set objRules = Outlook.Application.Session.DefaultStore.GetRules
'Change the rule name as per your actual case
Set objRule = objRules.Item("Move Mails to Temp")
On Error Resume Next
'Only work on non-empty Mail folder
If objCurrentFolder.Items.count > 0 And objCurrentFolder.DefaultItemType = olMailItem Then
With objRule
.Enabled = True
.Execute ShowProgress:=True, Folder:=objCurrentFolder, IncludeSubfolders:=True
End With
End If
'Process subfolders recursively
If objCurrentFolder.folders.count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- После этого вы должны проверить настройки макроса Outlook и убедиться, что макрос разрешен.
- В конце концов, вы можете попробовать.
- Просто нажмите на подпрограмму «RunSpecificRule_AllMailFolders».
- Затем нажмите кнопку F5, чтобы активировать этот код.
- Далее макрос запустится немедленно.
- После завершения вы получите сообщение, подобное следующему снимку экрана. Это относится к правилу закончилось.
Остерегайтесь вредоносных макросов
Как мы все знаем, вредоносные электронные письма становятся все более безудержными. Такие электронные письма часто содержат вредоносные макросы. Таким образом, если вы установите низкий уровень безопасности макросов Outlook, вам следует остерегаться скрытых вирусов и вредоносных программ. Кроме того, разумно приобрести мощный инструмент исправления PST, такой как DataNumen Outlook Repair, Это в состоянии восстановить PST файл и извлеките максимум данных для вас, не напрягаясь.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановить мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

