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

or

How to batch delete all empty folders in Outlook?

Suppose there are dozens of empty folders under a mail folder in Outlook, generally we can delete the empty folders one by one by right-clicking menu. Compared to right clicking repeatedly, this article will introduce a VBA to quickly delete all empty subfolders of one Outlook folder in bulk.

Batch delete all empty folders in Outlook with VBA

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 bubbleBatch delete all empty folders in Outlook with VBA

To remove all empty subfolders of a certain Outlook folder, please do as follows:

1. Press Alt + F11 keys to open the Microsoft Visual Basic for Applications window.

2. Click Insert > Module, and paste below VBA code into the new module window.

VBA: Delete all empty subfolders of certain Outlook folder in bulk

Public Sub DeletindEmtpyFolder()
Dim xFolders As Folders
Dim xCount As Long
Dim xFlag As Boolean
Set xFolders = Application.GetNamespace("MAPI").PickFolder.Folders
Do
FolderPurge xFolders, xFlag, xCount
Loop Until (Not xFlag)
If xCount > 0 Then
MsgBox "Deleted " & xCount & "(s) empty folders", vbExclamation + vbOKOnly, "Kutools for Outlook"
Else
MsgBox "No empty folders found", vbExclamation + vbOKOnly, "Kutools for Outlook"
End If
End Sub

Public Sub FolderPurge(xFolders, xFlag, xCount)
Dim I As Long
Dim xFldr As Folder 'Declare sub folder objects
xFlag = False
If xFolders.Count > 0 Then
For I = xFolders.Count To 1 Step -1
Set xFldr = xFolders.Item(I)
If xFldr.Items.Count < 1 Then 'If the folder is empty check for subfolders
If xFldr.Folders.Count < 1 Then 'If the folder contains not sub folders confirm deletion
xFldr.Delete 'Delete the folder
xFlag = True
xCount = xCount + 1
Else 'Folder contains sub folders so confirm deletion
FolderPurge xFldr.Folders, xFlag, xCount
End If
Else 'Folder contains items or (subfolders that may be empty).
FolderPurge xFldr.Folders, xFlag, xCount
End If
Next
End If
End Sub

3. Press F5 Key or Run button to run this VBA code.

4. In the popping out Select Folder dialog box, please select the specific folder whose empty subfolders you will delete in bulk, and click the OK button. See screenshot:

5. Now a Kutools for Outlook dialog box comes out and shows you how many empty subfolders have been deleted. Click the OK button to close it.

Until now, all subfolders of the specified Outlook folder have been deleted in bulk already.


arrow blue right bubbleRelated Articles

Find folder (full folder path) by folder name in Outlook

 

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.
  • To post as a guest, your comment is unpublished.
    Adam · 7 months ago
    Super easy and incredibly helpful. Thank you!!
  • To post as a guest, your comment is unpublished.
    Spooz · 7 months ago
    I am getting the same error like Bryan.... and now?
    • To post as a guest, your comment is unpublished.
      Carina · 2 months ago
      The script tries to delete a folder that was already deleted.
      I added a row after xFlag = False with this content:
      on error resume next
  • To post as a guest, your comment is unpublished.
    Bryan · 7 months ago
    I am getting the following error when run the above " Run-time error '-2147352567 (80020009)' Cannot delete this folder. Right-click the folder, and then click properties to check your permissions for the folder. See the folder owner or your administrator to change your permissions"

    It appears the script moves 1 item to the deleted folder and then errors out.
    • To post as a guest, your comment is unpublished.
      TechGiant · 7 months ago
      Agree - I get the same error.
      • To post as a guest, your comment is unpublished.
        Carina · 2 months ago
        The script tries to delete a folder that was already deleted.
        I added a row after xFlag = False with this content:
        on error resume next
        • To post as a guest, your comment is unpublished.
          Munier Saliba · 1 months ago
          Indeed, add:

          On Error Resume Next

          AFTER:

          Dim x Fldr As Folder 'Declare sub folder objects
          xFlag = False

          It should look like this:

          Dim x Fldr As Folder 'Declare sub folder objects
          xFlag = False
          On Error Resume Next
  • To post as a guest, your comment is unpublished.
    Miroslav · 9 months ago
    Brilliant!!!