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


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

следующий скрипт установит все подпапки ваш почтовый на хранилище по умолчанию показать общее количество элементов:
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.

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