Как вызвать диалог "Расширенный поиск" в Outlook с VBA

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

Что я хочу, так это в конце поиска конечного пользователя, чтобы выбрать и перейти от результатов выборочно.

Расширенный диалог поиска

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

Сообщение об ошибке

1 ответ

Решение

Вы можете проанализировать папку в пространстве имен 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 для получения дополнительной информации.

Другие вопросы по тегам