Перечисление папок во всех хранилищах
В этом разделе показан пример кода, который перечисляет все папки во всех хранилищах для сеанса.
Пример кода начинается с получения всех хранилищ для текущего сеанса с помощью свойства NameSpace.Stores текущего сеанса ,
Application.Session
.Для каждого хранилища этого сеанса он использует Store.GetRootFolder для получения папки в корне хранилища.
Для корневой папки каждого хранилища она итеративно вызывает процедуру
EnumerateFolders
, пока не перейдет и не отобразит имя каждой папки в этом дереве.
Замечания
Чтобы запустить этот пример кода, поместите код во встроенный модуль ThisOutlookSession . Выполните процедуру EnumerateFoldersInStores
:
Sub EnumerateFoldersInStores()
Dim colStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim oRoot As Outlook.Folder
On Error Resume Next
Set colStores = Application.Session.Stores
For Each oStore In colStores
Set oRoot = oStore.GetRootFolder
Debug.Print (oRoot.FolderPath)
EnumerateFolders oRoot
Next
End Sub
Private Sub EnumerateFolders(ByVal oFolder As Outlook.Folder)
Dim folders As Outlook.folders
Dim Folder As Outlook.Folder
Dim foldercount As Integer
On Error Resume Next
Set folders = oFolder.folders
foldercount = folders.Count
'Check if there are any folders below oFolder
If foldercount Then
For Each Folder In folders
Debug.Print (Folder.FolderPath)
EnumerateFolders Folder
Next
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.