Как быстро запустить определенное правило во всех почтовых папках с помощью Outlook VBA

Поделись сейчас:

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

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

Быстро запустить определенное правило во всех почтовых папках с помощью Outlook VBA

Быстро запустить определенное правило во всех почтовых папках

  1. В первую очередь, сtarв вашей программе Outlook.
  2. Затем в главном окне Outlook нажмите клавиши «Alt + F11».
  3. Далее в появившемся окне «Microsoft Visual Basic для приложений» следует открыть неиспользуемый модуль.
  4. Затем скопируйте приведенный ниже код 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

Код VBA — запуск определенного правила во всех почтовых папках

  1. После этого вы должны проверить настройки макроса Outlook и убедиться, что макрос разрешен.
  2. В конце концов, вы можете попробовать.
  • Просто нажмите на подпрограмму «RunSpecificRule_AllMailFolders».
  • Затем нажмите кнопку F5, чтобы активировать этот код.
  • Далее макрос запустится немедленно.
  • После завершения вы получите сообщение, подобное следующему снимку экрана. Это относится к правилу закончилось.Запуск завершен

Остерегайтесь вредоносных макросов

Как мы все знаем, вредоносные электронные письма становятся все более безудержными. Такие электронные письма часто содержат вредоносные макросы. Таким образом, если вы установите низкий уровень безопасности макросов Outlook, вам следует остерегаться скрытых вирусов и вредоносных программ. Кроме того, разумно приобрести мощный инструмент исправления PST, такой как DataNumen Outlook Repair, Это в состоянии восстановить PST файл и извлеките максимум данных для вас, не напрягаясь.

Об авторе:

Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановить мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.