Option Explicit
Sub FolderList()
Dim myNameSpace As Outlook.NameSpace
Dim Pst
Dim MyDic, objFSO, objTextFile
Dim MainFolder As MAPIFolder
Set objFSO = CreateObject("scripting.filesystemobject")
Set objTextFile = objFSO.createtextfile("c:\duplist.csv")
Set myNameSpace = Application.GetNamespace("MAPI")
Set MyDic = CreateObject("scripting.dictionary")
For Each Pst In myNameSpace.Folders
Set MainFolder = myNameSpace.Folders(Pst.Name)
Call ProcessFolder(MainFolder, MyDic, objTextFile)
Next
Set MyDic = Nothing
objTextFile.Close
Set objFSO = Nothing
MsgBox "Done"
End Sub
Sub ProcessFolder(ByVal MainFolder As MAPIFolder, ByVal MyDic, ByVal objTextFile)
Dim objFolder As Outlook.MAPIFolder
For Each objFolder In MainFolder.Folders
If MyDic.exists(objFolder.Name) Then
objTextFile.Write objFolder.FolderPath & "," & Right$(MyDic(objFolder.Name), Len(MyDic(objFolder.Name)) - InStr(MyDic(objFolder.Name), "|||") - 2)
objTextFile.Writeline
Else
MyDic.Add objFolder.Name, objFolder.Name & "|||" & objFolder.FolderPath
End If
Call ProcessFolder(objFolder, MyDic, objTextFile)
Next
Set objFolder = Nothing
End Sub
Change these lines to your PST file names
Cheers
Dave
Open in new window