Se houver subpastas na caixa de entrada principal ou na pasta de itens enviados, como percorrê-las de maneira recursiva e eficiente, usando o VBA, é uma dica muito útil. Esta parte crítica é reutilizável em muitos outros projetos VBA.
O problema crítico de percorrer pastas
Usuários corporativos e comerciais do Outlook frequentemente acabam com centenas de subpastas dentro da caixa de entrada principal ou da pasta de itens enviados, cada uma contendo e-mails relevantes. Quando surge a necessidade de percorrer todas essas pastas para executar alguma ação nos e-mails nelas contidos, torna-se um pesadelo escrever scripts VBA diferentes para cada pasta. Imagine ter quinhentas pastas dentro da pasta principal da Caixa de Entrada e a necessidade de um script VBA para cada uma delas. O usuário teria que escrever quinhentos scripts exclusivos para cada uma dessas pastas, com a mesma funcionalidade. Para piorar a situação, se houver necessidade de fazer alguma modificação, todos os quinhentos scripts precisarão ser atualizados. Felizmente, existe uma metodologia de programação conhecida como recursão, que resolve nosso problema com facilidade. A ideia da recursão é que uma função se chame repetidamente e percorra o mesmo padrão várias vezes, a fim de processar todos os itens com a mesma lógica. Abaixo, segue um exemplo de script que começa na pasta principal da Caixa de Entrada e itera por todas as subpastas e itens em cada uma dessas pastas.
Script VBA do Outlook
Abaixo está o script VBA completo do Outlook:
Private Sub Main()
Dim objNameSpace As Outlook.NameSpace
Dim objMainFolder As Outlook.Folder
Set objNameSpace = Application.GetNamespace("MAPI")
Set objMainFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Call ProcessCurrentFolder(objMainFolder)
End Sub
Private Sub ProcessCurrentFolder(ByVal objParentFolder As Outlook.MAPIFolder)
Dim objCurFolder As Outlook.MAPIFolder
Dim objMail As Outlook.MailItem
On Error Resume Next
' Process each items in the folder
For Each objMail In objParentFolder.Items
' Do your task here ...
Next
' Process the subfolders in the folder recursively
If (objParentFolder.Folders.Count > 0) Then
For Each objCurFolder In objParentFolder.Folders
Call ProcessCurrentFolder(objCurFolder)
Next
End If
End Sub
Como executar o script
Imprensa Alt + F11 Abra o editor VBA do Outlook e cole o código acima em “ThisOutlookSession”. É importante saber que, antes de executar este script, a biblioteca de objetos Microsoft Outlook XX deve ser adicionada às referências do projeto no menu “Ferramentas”, onde XX representa a versão da biblioteca.
Entenda o roteiro

Recuperar-se do Desastre
Se você se deparar com uma situação de travamento ou falha do Outlook, não precisa se preocupar com a perda de e-mails, pois DataNumen deve trazer sua vida de volta ao normal por corrigindo a corrupção do Outlook de uma maneira eficiente.
Introdução do autor:
Mary Underwood é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperação de dwg e rar produtos de software de recuperação. Para mais informações visite www.datanumen.com