How to get list of folders in Outlook?
Sometimes the tree structure of all mail folders (include the created personal folders) in the Navigation Pane can do some help for Outlook users during their work. For quickly list the whole tree structure folders, the VBA code can help you. In this tutorial, you can learn how to get list of folders easily with VBA code.
Office Tab: Enable Tabbed Editing and Browsing in Office, Just Like Chrome, Firefox, IE 8/9/10.
Classic Menu: Bring Old Menus and Toolbars Back to Office 2007, 2010, 2013, 2016 and 2019.
For getting list of folders in Outlook with VBA code, please do as follows.
1. Press the Alt + F11 keys on the keyboard to open the Microsoft Visual Basic for Applications window.
2. Then double click the Project1 > Microsoft Outlook Object > ThisOutlookSession to open the Project1 – ThisOutlookSession window. See screenshot:
3. Then copy and paste the below VBA code into the Project1 – ThisOutlookSession window.
VBA: get list of folders in Outlook
Option Explicit Sub GetFoldersList() On Error GoTo On_Error Dim Report As String Dim Folder As Outlook.Folder For Each Folder In Application.Session.Folders Report = Report & "---------------------------------------------------------------------------" & vbCrLf Call RecurseFolders(Folder, "", Report) Next Call CreateReportEmail("Outlook Folders List", Report) Exiting: Exit Sub On_Error: MsgBox "error=" & Err.Number & " " & Err.Description End Sub Sub RecurseFolders(CurrentFolder As Outlook.Folder, TabChars, ByRef Report As String) Dim SubFolder As Outlook.Folder Dim FolderName, StoreName As String FolderName = CurrentFolder.Name StoreName = CurrentFolder.Store.DisplayName Report = Report & TabChars & FolderName & " (Store: " & StoreName & ")" & vbCrLf For Each SubFolder In CurrentFolder.Folders Call RecurseFolders(SubFolder, TabChars & vbTab, Report) Next SubFolder End Sub Sub CreateReportEmail(Title As String, Report As String) Dim aMail As MailItem Set aMail = Application.CreateItem(olMailItem) aMail.Subject = Title aMail.Body = Report aMail.Display End Sub
4. Press the F5 key on the keyboard to start running the VBA code.
5. Now a Macro dialog box pops up, please click the Run button.
6. Wait for the Macro running. Then the list of all your email folders is listed out in a created new message window immediately. You can easily print it out. See screenshot:
Note: This VBA code can be applied to Outlook 2007, 2010 and 2013.
Recommended Productivity Tools
- Complicated and repeated operations can be done a one-time processing in seconds.
- Forward multiple emails individually with one-click, and auto forward by rules.
- Auto CC/BCC every sending email and easy for customizing rules, and auto reply without requiring exchange server.
- Powerful junk emails filter, remove duplicate emails, reply with attachment, bunch of one-click operations, and so on...
- 60-day unlimited free trial. 60-day money back guarantee. 2 years free upgrade and support. Buy once, use forever.