Поделиться через


Перечисление папок во всех хранилищах

В этом разделе показан пример кода, который перечисляет все папки во всех хранилищах для сеанса.

  1. Пример кода начинается с получения всех хранилищ для текущего сеанса с помощью свойства NameSpace.Stores текущего сеанса , Application.Session.

  2. Для каждого хранилища этого сеанса он использует Store.GetRootFolder для получения папки в корне хранилища.

  3. Для корневой папки каждого хранилища она итеративно вызывает процедуру 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 и обратная связь.