Como eu escreveria uma macro no Outlook 2010 para definir todas as propriedades da pasta para “ver todos os itens”?

0

Como eu escreveria uma macro para definir todas as propriedades da pasta para "ver todos os itens"? Eu tenho centenas de pastas e subpastas e preciso definir as pastas para ver todos os itens e não consigo descobrir como escrever uma macro. Finalmente decidi que precisava de alguma ajuda. Isso deve ser uma configuração no Outlook semelhante às configurações de arquivamento padrão.

    
por M. Ashley 10.11.2013 / 22:01

2 respostas

0

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.

link and link

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. "

link

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
    
por 11.11.2013 / 17:48
0

O script a seguir definirá todas as subpastas da sua Caixa de entrada no Armazenamento padrão para mostrar a contagem total de itens:

Private Sub ShowTotalCount(Folders As Folders)
    For Each Folder In Folders
        Folder.ShowItemCount = olShowTotalItemCount
        ShowTotalCount Folder.Folders
    Next
End Sub

Sub ShowTotalCountAll()
    ShowTotalCount Session.DefaultStore.GetDefaultFolder(olFolderInbox).Folders
End Sub

Basta colá-lo em ThisOutlookSession no Outlook VBA (pressione ALT + F11 para abri-lo). Depois disso, execute a macro ShowTotalCountAll pressionando F5.

    
por 11.11.2013 / 17:50