How to count number of folders under specified email account or all mailboxes in Outlook?
This article is talking about counting number of folders under specified email account or all mailboxes in Outlook.
Recommended Productivity Tools for Excel
Office Tab: Bring powerful tabs to Office (include Excel), just like Chrome, Safari, Firefox and Internet Explorer. Save you half the time, and reduce thousands of mouse clicks for you. 30-day Unlimited Free Trial
Kutools for Excel: Save 71% of your time and solve 82% Excel problems for you. 300+ advanced tools designed for 1500+ work scenario, make Excel much easy and increase productivity immediately.60-day Unlimited Free Trial
You can count number of folders under specified email account or all mailboxes with below VBA code. Please do as follows.
1. Press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Userform. See screenshot:
3. Then insert two Option Buttons and two Command Buttons into UserForm1, and change the display text of the buttons as below screenshot shown.
4. Change the name of the first option button to “opbCurAccount” and change the value property to True. See screenshot:
5. Go on changing the name of the second option button to “opbAllAccounts”. And then specify the name of the two command buttons to “cdbOk” and ”cdbCancel” separately.
6. Double click any blank place of UserForm1, and then replace the original code with below VBA code in the Userform1 (Code) window.
VBA code: Count number of folders in Outlook
Option Explicit 'Update by Extendoffice 20180504 Public xRet As Boolean Private Sub cdbCancel_Click() xRet = False UserForm1.Hide End Sub Private Sub cdbOk_Click() xRet = True UserForm1.Hide End Sub 7. Click Insert > Module. Then copy below VBA code into the Module window. VBA code: Count number of folders in Outlook Function GetSubFolderCount(ParentFolder As Folder) As Long Dim xSubFolders As Folders Dim xCurFolder As Outlook.Folder Dim xFoldersCount As Integer On Error Resume Next Set xSubFolders = ParentFolder.Folders If xSubFolders.Count > 0 Then Set xCurFolder = xSubFolders.GetFirst While TypeName(xCurFolder) = "MAPIFolder" xFoldersCount = xFoldersCount + GetSubFolderCount(xCurFolder) Set xCurFolder = xSubFolders.GetNext Wend GetSubFolderCount = xFoldersCount + xSubFolders.Count Else GetSubFolderCount = 0 End If End Function Sub CountFoldersInOutlook() Dim xNameSpace As NameSpace Dim xFolder As Folder Dim xAllFoldersCount As Long On Error Resume Next UserForm1.Show If UserForm1.xRet Then Set xNameSpace = Outlook.Application.Session If UserForm1.opbCurAccount.Value Then Set xFolder = Outlook.Application.ActiveExplorer.CurrentFolder.Store.GetRootFolder xAllFoldersCount = GetSubFolderCount(xFolder) ElseIf UserForm1.opbAllAccounts.Value Then For Each xFolder In xNameSpace.Folders xAllFoldersCount = xAllFoldersCount + GetSubFolderCount(xFolder) Next End If Else Exit Sub End If MsgBox "Total Folders: " & xAllFoldersCount, vbInformation + vbOKOnly, "Kutools for Outlook" End Sub
8. Press the F5 key to run the code. Then a UserForm1 dialog box pops up, for counting number of folders in current account, please select the Current Account option and click the OK button. For counting number of folders in all mailboxes, choose the All Accounts option and then click the OK button. See screenshot:
9. Then a Kutools for Outlook dialog box pops up to tell you how many folders existing in current account or all mailboxes as below screenshot. Please click the OK button.
Note: All hidden folders such as the Conversation Action Settings folder and the Quick Step Settings folder are included in the folder counting.