Rekursives Durchlaufen eines Ordnerbaums in Outlook über VBA

Jetzt teilen:

Wenn es Unterordner im Hauptordner „Posteingang“ oder „Gesendete Objekte“ gibt, ist es ein sehr nützlicher Tipp, wie man diese mithilfe von VBA rekursiv und effizient durchläuft. Dieser wichtige Teil kann in vielen anderen VBA-Projekten wiederverwendet werden.

Das kritische Problem des Durchlaufens von Ordnern

Ordnerbaum in OutlookOutlook-Nutzer in Unternehmen und im gewerblichen Bereich haben oft Hunderte von Unterordnern unterhalb ihres Posteingangs oder des Ordners „Gesendete Objekte“, die jeweils relevante E-Mails enthalten. Wenn man all diese Ordner durchsuchen muss, um eine bestimmte Aktion mit den darin enthaltenen E-Mails durchzuführen, wird das Schreiben separater VBA-Skripte für jeden Ordner schnell zum Albtraum. Stellen Sie sich vor, Sie haben 500 Ordner unterhalb des Posteingangs und benötigen für jeden davon ein VBA-Skript. Der Benutzer müsste 500 individuelle Skripte mit ähnlicher Funktionalität schreiben. Erschwerend kommt hinzu, dass bei Änderungen alle 500 Skripte aktualisiert werden müssen. Glücklicherweise gibt es eine Programmiermethode namens Rekursion, die unser Problem mühelos löst. Die Idee der Rekursion besteht darin, dass sich eine Funktion wiederholt selbst aufruft und dasselbe Muster immer wieder durchläuft, um alle Elemente mit derselben Logik zu verarbeiten. Im Folgenden finden Sie ein Beispielskript, das mit dem Posteingang beginnt und alle Unterordner und Elemente in jedem dieser Ordner durchläuft.

Outlook VBA-Skript

Unten finden Sie das vollständige Outlook VBA-Skript:

Private Sub Main()
    Dim objNameSpace As Outlook.NameSpace
    Dim objMainFolder As Outlook.Folder
    
    Set objNameSpace = Application.GetNamespace("MAPI")
    Set objMainFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
    
    Call ProcessCurrentFolder(objMainFolder)
End Sub
 
Private Sub ProcessCurrentFolder(ByVal objParentFolder As Outlook.MAPIFolder)
    Dim objCurFolder As Outlook.MAPIFolder
    Dim objMail As Outlook.MailItem
    
    On Error Resume Next
    
    '    Process each items in the folder
    For Each objMail In objParentFolder.Items
        '    Do your task here ...
    Next
    
    '    Process the subfolders in the folder recursively
    If (objParentFolder.Folders.Count > 0) Then
        For Each objCurFolder In objParentFolder.Folders
            Call ProcessCurrentFolder(objCurFolder)
        Next
    End If
End Sub

So führen Sie das Skript aus

Presse Alt + F11 Öffnen Sie den Outlook-VBA-Editor und fügen Sie den obigen Code in „ThisOutlookSession“ ein. Wichtig: Vor der Ausführung dieses Skripts muss die Microsoft Outlook XX-Objektbibliothek über das Menü „Tools“ zu den Projektverweisen hinzugefügt werden, wobei XX die Bibliotheksversion angibt.

Verstehe das Skript

Rekursionsfunktion„ProcessCurrentFolder“ ist eine rekursive Funktion, die sich selbst aufruft, sobald ein Unterordner im aktuellen Ordner gefunden wird. Sie wird so lange aufgerufen, bis alle Ordner der ursprünglichen Hierarchie durchsucht und verarbeitet wurden. Dieses Skript funktioniert mit jedem Outlook-Ordner. „olFolderInbox“ kann durch „olFolderSentMail“, „olFolderOutbox“ oder einen anderen Outlook-Ordner ersetzt werden. Wichtig ist, dass der erste Aufruf nicht im Stammordner (Posteingang oder Postausgang) erfolgen muss; die Funktion kann von jedem beliebigen Unterordner aus gestartet werden. Die Zeile „For Each objMail In objParentFolder.Items“ ist entscheidend, da sie alle Elemente im aktuellen Ordner durchläuft. Hier muss der Benutzer den Code zur Verarbeitung der Elemente einfügen.

Erholen Sie sich von der Katastrophe

Sollte Outlook abstürzen oder ausfallen, brauchen Sie sich keine Sorgen um verlorene E-Mails zu machen, denn DataNumen soll Ihr Leben wieder normalisieren Beheben von Outlook-Beschädigungen auf effiziente Weise.

Einführung des Autors:

Mary Underwood ist eine Datenrettungsexpertin in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich DWG-Wiederherstellung und rar Wiederherstellungssoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.