Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in


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.

Get list of folders in Outlook with VBA code

Kutools for Outlook: 100+ New Advanced Tools for Outlook.
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.

arrow blue right bubbleGet list of folders in Outlook with VBA code

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)
    Call CreateReportEmail("Outlook Folders List", Report)
    Exit Sub
    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
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

shot kutools outlook kutools tab 1180x121
shot kutools outlook kutools plus tab 1180x121

Kutools for Outlook - More than 100 Advanced Functions for Outlook, Improve 70% Efficiency For you

  • 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.
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.