Seu pedido para ensinar você a escrever uma macro pode ser muito geral. Então, aqui está uma resposta sobre como expandir todas as pastas.
Você pode decidir expandir todas as pastas quando necessário, não necessariamente na inicialização.
"Este exemplo abre toda a árvore na inicialização e é um espetáculo ...
Existe uma variável 'ExpandDefaultStoreOnly' no procedimento 'ExpandAllFolders'. Com o valor atual (True) somente a pasta particular é expandida. Se você quiser expandir todas as caixas de correio disponíveis (arquivos, Exchange), defina a variável = False. "
Private Sub Application_Startup()
ExpandAllFolders
End Sub
Private Sub ExpandAllFolders()
On Error Resume Next
Dim Ns As Outlook.NameSpace
Dim Folders As Outlook.Folders
Dim CurrF As Outlook.MAPIFolder
Dim F As Outlook.MAPIFolder
Dim ExpandDefaultStoreOnly As Boolean
ExpandDefaultStoreOnly = True
Set Ns = Application.GetNamespace("Mapi")
Set CurrF = Application.ActiveExplorer.CurrentFolder
If ExpandDefaultStoreOnly = True Then
Set F = Ns.GetDefaultFolder(olFolderInbox)
Set F = F.Parent
Set Folders = F.Folders
LoopFolders Folders, True
Else
LoopFolders Ns.Folders, True
End If
DoEvents
Set Application.ActiveExplorer.CurrentFolder = CurrF
End Sub
Private Sub LoopFolders(Folders As Outlook.Folders, _
ByVal bRecursive As Boolean)
Dim F As Outlook.MAPIFolder
For Each F In Folders
Set Application.ActiveExplorer.CurrentFolder = F
DoEvents
If bRecursive Then
If F.Folders.Count Then
LoopFolders F.Folders, bRecursive
End If
End If
Next
End Sub