Kategorier
Problem & Lösningar

Lista alla mappar i Outlook-trädet

Om man har många undermappar i Outlook och råkar dra-och-släppa en mapp så man tappar bort den så upptäcker man snart att det saknas en funktion för att söka efter mappar (i varje fall i Outlook 2007).

För att råda bot på detta har jag skriva ett litet makro som exporterar alla mappar så att man kan söka bland dem.

Public Sub EnumerateFolders()
    Dim folder As MAPIFolder
    Dim s As String
    ’ The folder to start the enumeration from (parent folder of you inbox would do)
    Set folder = Application.GetNamespace("mapi").GetDefaultFolder(olFolderInbox).Parent
    s = EnumerateFoldersRecursive(folder)
    Set folder = ""
    ’ Create a new mail item to display the result in. Quick and dirty!
    Dim msg As Outlook.MailItem
    Set msg = Application.CreateItem(olMailItem)
    msg.Body = s
    msg.Display
    Set msg = Nothing
End Sub

Private Function EnumerateFoldersRecursive(folder As MAPIFolder)
    Dim ret As String
    Dim f As MAPIFolder
    ’ Append the current folder to the return string
    ret = ret + folder.FolderPath & vbCrLf
    ’ Recurse through all the sub folder
    For Each f In folder.Folders
        ret = ret + EnumerateFoldersRecursive(f)
    Next
    ’ Return the value
    EnumerateFoldersRecursive = ret
End Function

Gör så här för att installera makrot:

  1. Kopiera koden ovan.
  2. Öppna Visual Basic-editor från Outlook: Verktyg\Makron\Visual Basic Editor
  3. Dubbelklicka på ThisOutlookSession.
  4. Klistra in koden.
  5. Stäng Visual Basic Editor.

För att köra makrot väljer du “Verktyg\Makro” i Outlook, det underlättar även om du signerar makrot med ett certifikat.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *