Как мне написать макрос, чтобы установить все свойства папки, чтобы "видеть все элементы"? У меня есть сотни папок и подпапок, и мне нужно настроить папки, чтобы видеть все элементы, и я не могу понять, как написать макрос. Наконец решил, что мне нужна помощь. Это должна быть настройка в outlook, аналогичная настройкам архива по умолчанию.

2 ответа2

0

Ваша просьба научить вас писать макросы может быть слишком общей. Таким образом, вместо этого есть ответ о том, как развернуть все папки.

http://www.msoutlook.info/question/595 и
http://vboffice.net/sample.html?lang=en&mnu=2&smp=57&cmd=showitem

Вы можете решить расширить все папки, когда это необязательно при запуске.

«Этот образец открывает все дерево при запуске, и это зрелище...

В процедуре ExpandAllFolders есть переменная ExpandDefaultStoreOnly. При текущем значении (True) раскрывается только Личная папка. Если вы хотите расширить все доступные почтовые ящики (архивы, Exchange), тогда установите переменную = False. "

http://vboffice.net/sample.html?lang=en&mnu=2&smp=57&cmd=showitem

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
0

Следующий скрипт установит все подпапки вашей папки «Входящие» в хранилище по умолчанию для отображения общего количества элементов:

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

Просто вставьте его в ThisOutlookSession в Outlook VBA (нажмите ALT+F11, чтобы открыть его). После этого запустите макрос ShowTotalCountAll , нажав F5.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .