Snel een specifieke regel uitvoeren in alle e-mailmappen met Outlook VBA

Standaard kunt u een regel slechts in één map tegelijk uitvoeren. In dit artikel leren we u hoe u een stukje VBA-code kunt gebruiken om een ​​specifieke regel in alle e-mailmappen uit te voeren.

Outlook staat gebruikers toe om de regel handmatig uit te voeren. U kunt gewoon het dialoogvenster "Regels en waarschuwingen" openen en op de knop "Regels nu uitvoeren" klikken. Selecteer in het volgende dialoogvenster een specifieke regel en kies een map waarin u deze regel wilt uitvoeren. Maar als u snel een regel in alle e-mailmappen wilt uitvoeren, kunt u de volgende VBA-code gebruiken.

Voer snel een specifieke regel uit in alle e-mailmappen met Outlook VBA

Voer snel een specifieke regel uit in alle e-mailmappen

  1. In de eerste plaats, start uw Outlook-programma.
  2. Druk vervolgens in het hoofdvenster van Outlook op de toetsen "Alt + F11".
  3. Vervolgens moet u in het opkomende "Microsoft Visual Basic for Applications" -venster een niet-in-gebruik-module openen.
  4. Kopieer vervolgens de onderstaande VBA-code naar dit modulevenster. Bovendien moet u enkele regels wijzigen op basis van uw eigen hoofdlettergebruik, zoals de regelnaam.
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-code - Voer een specifieke regel uit in alle e-mailmappen

  1. Daarna moet u uw Outlook-macro-instellingen controleren om ervoor te zorgen dat macro's zijn toegestaan.
  2. Uiteindelijk kun je het proberen.
  • Klik gewoon in de "RunSpecificRule_AllMailFolders" subroutine.
  • Druk vervolgens op de F5-sleutelknop om deze code te activeren.
  • Vervolgens wordt de macro onmiddellijk uitgevoerd.
  • Nadat het is voltooid, krijgt u een bericht, zoals de volgende schermafbeelding. Het verwijst naar de regel is afgelopen.Voer voltooiingen uit

Pas op voor schadelijke macro's

Zoals we allemaal weten, zijn kwaadaardige e-mails steeds populairder geworden. Dergelijke e-mails bevatten vaak kwaadaardige macro's. Dus als u uw Outlook-macrobeveiligingsniveau op laag instelt, moet u op uw hoede zijn voor verborgen virussen en malware. Bovendien is het verstandig om een ​​krachtige PST-fix-tool te bemachtigen, zoals DataNumen Outlook Repair. Het kan reparatie PST bestand en extraheer maximale gegevens voor u zonder te zweten.

Auteur Introductie:

Shirley Zhang is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder herstel mdf en Outlook-reparatiesoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.