Wenn ein Ordner in Outlook versehentlich verschoben wurde, ist es leider nicht so einfach diesen wieder zu finden. Denn Outlook bietet von Haus aus keine Funktion zum Suchen von Ordnern. Aber es gibt ein paar Kniffe um an den Ordner in Outlook wieder zu finden.
Möglichkeit 1: Auflisten der Ordner um diesen in Outlook zu suchen
Eine direkte Suche von Ordnern ist zwar nicht möglich in Outlook aber man kann sich eine Liste ausgeben lassen. Über diese kann dann drüber geschaut werden ob sich der entsprechende Ordner darunter befindet.
Dazu klickt man mit der rechten Maustaste auf das Postfach in Outlook (Normalerweise steht dort die E-Mailadresse). Dort wählt man Datendateieigenschaften…
Im Nachfolgenden Fenster gibt es die Schaltfläche Ordnergröße…. Nach einem klick auf diese werden alle Ordner innerhalb des Postfaches angezeigt. Diese Liste kann man von Hand durchgehen um zu prüfen ob sich der gesuchte Ordner sich darin befindet. Leider lässt sich diese Liste nicht aus Outlook heraus kopieren, was die suche nach dem Ordner etwas vereinfachen würde.
Möglichkeit 2: Per VBA Makro einen Ordner in Outlook suchen
Eine weitere Methode um einen Ordner in Outlook zu finden besteht über ein VBA Makro. Um das Makro zu nutzen müssen die Entwicklertools in Outlook aktiviert werden.
Entwicklertools hinzufügen
mit einem Rechtsklick auf das Menüband in Outlook.
Dort wird der Punkt Menüband anpassen… gewählt.
Im dortigen Fenster wird auf der rechten Seite die Entwicklertools angehakt.
Anschließend findet sich im oberen Menüband die Entwickertools.
VBA Makro hinzufügen
Nun muss noch das Makro für die Suche in Outlook eingefügt werden. Welche sich nun im Menüband unter den Entwicklertools befinden.
Dazu wird das Menü Makros und die Schaltfläche Makros gewählt.
Oben wird ein Name für das Makro eingetragen z.B. „Outlook Ordner Suche“ und anschließend auf Erstellen geklickt.
In das nachfolgende Fenster wird der folgende Inhalt kopiert und anschließend oben auf die Diskette zum speichern geklickt. (Outlook Ordner Suche Skript via vboffice.net)
Private m_Folder As Outlook.MAPIFolder
Private m_Find As String
Private m_Wildcard As Boolean
Private Const SpeedUp As Boolean = True
Private Const StopAtFirstMatch As Boolean = True
Public Sub FindFolder()
Dim Name$
Dim Folders As Outlook.Folders
Set m_Folder = Nothing
m_Find = ""
m_Wildcard = False
Name = InputBox("Find name:", "Search folder")
If Len(Trim$(Name)) = 0 Then Exit Sub
m_Find = Name
m_Find = LCase$(m_Find)
m_Find = Replace(m_Find, "%", "*")
m_Wildcard = (InStr(m_Find, "*"))
Set Folders = Application.Session.Folders
LoopFolders Folders
If Not m_Folder Is Nothing Then
If MsgBox("Activate folder: " & vbCrLf & m_Folder.FolderPath, vbQuestion Or vbYesNo) = vbYes Then
Set Application.ActiveExplorer.CurrentFolder = m_Folder
End If
Else
MsgBox "Not found", vbInformation
End If
End Sub
Private Sub LoopFolders(Folders As Outlook.Folders)
Dim F As Outlook.MAPIFolder
Dim Found As Boolean
If SpeedUp = False Then DoEvents
For Each F In Folders
If m_Wildcard Then
Found = (LCase$(F.Name) Like m_Find)
Else
Found = (LCase$(F.Name) = m_Find)
End If
If Found Then
If StopAtFirstMatch = False Then
If MsgBox("Found: " & vbCrLf & F.FolderPath & vbCRLF & vbCrLf & "Continue?", vbQuestion Or vbYesNo) = vbYes Then
Found = False
End If
End If
End If
If Found Then
Set m_Folder = F
Exit For
Else
LoopFolders F.Folders
If Not m_Folder Is Nothing Then Exit For
End If
Next
End Sub
Nun sollte über die Makro Schaltfläche das soeben erstellte Makro zu finden sein und dort mit einem klicken zum ausführen gebracht werden.
In dem darauf folgenden Fenster kann der Suchbegriff zum gewünschten Ordner eingegeben werden. Als Ergebnis sollte angezeigt werden wo sich der gesuchte Ordner in Outlook befindet.






Leider funktioniert das Script nicht korrekt, wenn es mehr als 1 Ordner mit dem selben Namen gibt. Er findet in diesem Fall nur 1 Ordner und bietet eine weitere Suche nicht an. Ich benutze Outlook 2016 32-Bit unter Windows 10 64-Bit.
Bei mir läuft das script bedauerlicherweise überhaupt nicht. Ich benutze Microsoft Office 365 ProPlus V1708 Build 8431.2079 – 32-Bit unter Windows 10 64-Bit. (Outlook 2016 )
Jetzt funktioniert das script. Ich muss wohl irgend etwas falsch gemacht haben.
Ist ne Superhilfe. Vielen Dank!
Eine Frage zu dem Makro:
Was macht man denn, wenn man mehrere Unterordner mit der gleichen Bezeichnung (z. B. mit der Jahreszahl „2017“) hat.
Das Makro sucht ja immer nur bis zum ersten Ergebnis.Kann man das Makro erweitern, dass es weitersucht?
Dies hat der Programmierer schon berücksichtigt.
Im oberen Bereich folgende Zeile anpassen auf:
Private Const StopAtFirstMatch As Boolean = False
Hat super geklappt!!! Danke für die tolle Hilfe.
Wie ist es wenn mehrere Archivordner im Outlook vorhanden sind ?Werden diese auch berücksichtigt ?
Solch eine Möglichkeit über ein VBA Makro Ordner zu suchen und gezielt an zu springen habe ich schon lange gesucht, läuft super.
Wenn man das Makro mit einem Mausklick starten will gibt es folgende Möglichkeit (getestet mit Office365):
„Symbolleiste für den Schnellzugriff anpassen“ -> „Weitere Befehle…“ -> im Dropdownmenü den Punkt „Makros“ auswählen -> das Makro „Projekt1.FindFolder“ mit dem Button „Hinzufügen“ nach rechts bringen -> ok. (Man kann über den Button „Ändern…“ auch noch das Icon anpassen)
Nun hat man in der obersten Zeile (Schnellzugriff) ein Icon mit dem das Makro sofort gestartet wird.
Super Sache! Frage: wie muss das Makro aktualisiert werden, sodass es den Ordner auch findet wenn dessen Name nicht exakt mit dem Suchbegriff übereinstimmt, z.B. diesen nur enthält, etwa so:
Gesuchter Ordnername: „Customer_Management“
Suchbegriff: „Customer“
Vielen Dank
Das war jetzt aber mal eine wirkliche Hilfe!
Den Code nutze ich seit einem halben Jahr und er ist super. Frage: Kann es sein, dass die Suche länger dauert mit zunehmender Komplexität der Ordnerstrukturen? Ich habe das Gefühl, dass die Ordnersuche am Anfang schneller funktioniert hat. Es wäre dramatisch für meine Arbeitsweise, wenn die Geschwindigkeit der Ordnersuche mit der Zeit nachlässt.
Ich erhalte leider den Fehler: „Der versuchte Vorgang konnte nicht ausgeführt werden. Ein Objekt wurde nicht gefunden.“
Beim Debuggen wird die folgende Zeile markiert:
LoopFolders F.Folders
Könnte mir hierbei jemand behilflich sein? Vielen Dank!