If you are ever moving large amounts of email around it can be useful to be able to check that there is the correct number of emails in the old and new locations. This code generates a text file that can be used to compare the count of items in each folder. Just walks its way through the mailstore. includes public folders or PST files. Text file is in CSV format so it can be easily read and summarised in excel.
Sub CountAllFolders()
Dim myfolder, mymyfolder, mydestfolder, mydestfolder1 As Folder
Dim myisempty As Boolean
mymsg = ""
errorlist = ""
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
For x = 1 To myNameSpace.Folders.Count
Set myfolder = myNameSpace.Folders(x)
mymsg = mymsg + countthisfolder(myfolder)
Next x
'MsgBox mymsg
'should be putting this somewhere cleverer
FilePath = "c:\windows\temp\outlookfolderitemscount.csv"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FilePath, 2, True)
objFile.Write (mymsg)
Set objFile = Nothing
Set objFSO = Nothing
'Stop
'myfolder.Display
End Sub
Function countthisfolder(ByVal myfolders As Folder)
mymsg = ""
mymsg = """" + myfolders.FolderPath + """," + CStr(myfolders.Items.Count) + vbCrLf
For i = 1 To myfolders.Folders.Count
mymsg = mymsg + countthisfolder(myfolders.Folders(i)) + vbCrLf
Debug.Print myfolders.Folders(i).FolderPath
Next i
countthisfolder = mymsg
End Function