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.
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
.Para cada repositório desta sessão, ele usa Store.GetRootFolder para obter a pasta na raiz do repositório.
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.