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:
- Kopiera koden ovan.
- Öppna Visual Basic-editor från Outlook: Verktyg\Makron\Visual Basic Editor
- Dubbelklicka på ThisOutlookSession.
- Klistra in koden.
- 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.