如何使用VBA调出Outlook中的“高级查找”对话框

时间:2011-07-20 16:50:07

标签: vba outlook-2003

我知道如何使用Outlook.AdvancedSearch()方法进行搜索。我想要的是基于我的搜索参数,用VBA代码填充高级查找对话框中的构建,如下所示。

我想要的是在搜索最终用户的最后选择性地从结果中选择和移动。

Advanced Find Dialog

修改 如果这不可能(如我的搜索所示),那么如何将结果保存到搜索文件夹中?当我使用Search.Save()方法并且该文件夹已存在时,我收到错误。至少我想在搜索完成后使搜索文件夹处于活动状态。

Error Message

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码解析名称空间ns中的文件夹

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

在此主题中找到:Access Outlook default folder

因此,您可以在创建搜索文件夹之前检查它是否已存在。

您还可以阻止错误或处理错误,例如:

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