Как вызвать диалог «Расширенный поиск» в Outlook с VBA - PullRequest
1 голос
/ 20 июля 2011

Я знаю, как выполнить поиск, используя метод Outlook.AdvancedSearch().То, что я хочу, основано на параметрах для моего поиска, чтобы заполнить диалог расширенного поиска для сборки кодом VBA, как показано ниже.

В конце поиска конечному пользователю нужно выбрать и выбратьвыборочно переходить от результатов.

Advanced Find Dialog

Редактировать Если это невозможно (как показывают результаты моего поиска), то как я могу сохранить результаты в папке поиска?Когда я использую метод Search.Save() и папка уже существует, я получаю сообщение об ошибке.По крайней мере, я хотел бы сделать папку поиска активной после завершения поиска.

Error Message

1 Ответ

1 голос
/ 31 августа 2011

Вы можете проанализировать папку в пространстве имен ns с этим видом кода:

ns.Folders("Personal Folders").Folders("Inbox")

Найдено в этой теме: Доступ к папке Outlook по умолчанию

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

Вы также можете предотвратить ошибку или обработать ее, например:

On Error Resume Next
'Create folder (won't raise error if already exists)
On Error GoTo 0

В конце концов, чтобы активировать папку поиска , вы можете использовать свойство CurrentFolder:

Sub ChangeCurrentFolder()
    Dim myolApp As Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Set myolApp = CreateObject("Outlook.Application")
    Set myNamespace = myolApp.GetNamespace("MAPI")
    Set myolApp.ActiveExplorer.CurrentFolder = _
    myNamespace.GetDefaultFolder(olFolderCalendar)
End Sub

См. MSDN для получения дополнительной информации.

...