Sådan kører du hurtigt en bestemt regel i alle mailmapper med Outlook VBA

Som standard kan du kun køre en regel i én mappe ad gangen. I denne artikel lærer vi dig, hvordan du bruger et stykke VBA-kode til at køre en bestemt regel i alle postmapper.

Outlook tillader brugere at køre reglen manuelt. Du kan bare få adgang til dialogboksen "Regler og advarsler" og trykke på knappen "Kør regler nu". I den efterfølgende dialogboks skal du vælge en bestemt regel og vælge en mappe, hvor du ønsker at køre denne regel. Men hvis du hurtigt vil køre en regel i alle mailmapper, kan du bruge følgende VBA-kode.

Kør hurtigt en bestemt regel i alle mailmapper med Outlook VBA

Kør hurtigt en bestemt regel i alle mailmapper

  1. For det første, start dit Outlook-program.
  2. Tryk derefter på "Alt + F11" -tasten i hovedvinduet i Outlook.
  3. Næste i det nye "Microsoft Visual Basic for Applications" vindue, skal du åbne et ikke-i-brug modul.
  4. Kopier derefter VBA-koden nedenfor til dette modulvindue. Derudover bør du ændre nogle linjer baseret på din egen sag, såsom regelnavnet.
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-kode - Kør en specifik regel i alle mailmapper

  1. Derefter skal du kontrollere dine Outlook-makroindstillinger og sikre, at makro er tilladt.
  2. Til sidst kan du prøve.
  • Bare klik ind under "RunSpecificRule_AllMailFolders" underrutinen.
  • Tryk derefter på F5-tasten for at udløse denne kode.
  • Dernæst vil makroen køre med det samme.
  • Når det er fuldført, vil du få en besked, som det følgende skærmbillede. Det henviser til, at reglen er afsluttet.Kør fuldført

Pas på ondsindede makroer

Som vi alle ved, er ondsindede e-mails blevet mere og mere udbredt. Sådanne e-mails indeholder ofte ondsindede makroer. Så hvis du indstiller dit Outlook-makrosikkerhedsniveau til lavt, skal du passe på de skjulte vira og malware. Desuden er det klogt at få fat i et kraftfuldt PST fixværktøj, som f.eks DataNumen Outlook Repair. Det er i stand til reparation PST fil og udtræk maksimal data til dig uden at svede.

Forfatter Introduktion:

Shirley Zhang er ekspert i datagendannelse i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder gendanne mdf og Outlook-reparationssoftwareprodukter. For mere information besøg www.datanumen.com

Kommentarer er lukket.