Compartilhar via


Enumerar pastas em todos os repositórios

Este tópico mostra um exemplo de código que enumera todas as pastas em todos os repositórios de uma sessão.

  1. O exemplo de código começa obtendo todos os repositórios da sessão atual usando a propriedade NameSpace.Stores da sessão atual, Application.Session.

  2. Para cada repositório desta sessão, ele usa Store.GetRootFolder para obter a pasta na raiz do repositório.

  3. Para a pasta raiz de cada repositório, ela chama iterativamente o EnumerateFolders procedimento até que ele tenha visitado e exibido o nome de cada pasta nessa árvore.

Comentários

Para executar o exemplo de código, coloque o código no módulo ThisOutlookSession interno. Execute o EnumerateFoldersInStores procedimento:

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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.