Как написать макрос в Outlook 2010, чтобы задать все свойства папки "просмотреть все элементы"?

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

24
задан Moses
20.01.2023 13:44 Количество просмотров материала 2360
Распечатать страницу

2 ответа

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

http://www.msoutlook.info/question/595 and

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
отвечен niton 2023-01-21 21:32

следующий скрипт установит все подпапки ваш почтовый на хранилище по умолчанию показать общее количество элементов:

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.

0
отвечен thims 2023-01-21 23:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх