如何在Outlook中获取搜索文件夹条件

时间:2014-09-24 15:34:42

标签: vba outlook-vba

我正在尝试在Outlook中编辑搜索文件夹。但搜索文件夹被视为常规文件夹: 在this MSDN reference中,MS通知" GetSearchFolders返回文件夹集合"。

我相信,一旦我有搜索文件夹过滤器,我将不得不删除当前,编辑过滤器并创建一个新过滤器 - 但这很容易。我发现例如here如何创建和删除搜索文件夹。无处不在我发现创建和删除,但似乎没有人知道如何编辑它或获得适用于它的过滤器......

1 个答案:

答案 0 :(得分:2)

Outlook对象模型不允许您编辑搜索文件夹的搜索条件。

您可以使用扩展MAPI(C ++或Delphi,如果您选择搜索文件夹并单击IMAPIFolder按钮并转到GetSearchCriteria选项卡,则可以在OutlookSpy中查看搜索条件)或Redemption (任何语言):它公开RDOSearchFolder对象(允许您创建和管理MAPI搜索文件夹)和RDOStore2.Searches集合 - 它公开在搜索文件夹节点下可见的已保存搜索(由MAPI搜索文件夹备份)在Outlook中。

更新:以下脚本将在默认配置文件中打印所有搜索的搜索条件:

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Searches = Session.Stores.DefaultStore.Searches
for each Search in Searches
  Debug.Print  "-------------"
  Debug.Print Search.Name & ": "
  Debug.Print Search.SearchCriteria.AsSQL
next