标志状态的VBA替换

时间:2017-05-15 19:51:32

标签: vba outlook outlook-vba

根据文档,Outlook中的MailItem.FlagStatus属性为deprecated。那么Outlook使用什么来标记邮件项目为"正在进行中"或者"等待别人"当所述项目被标记并因此出现在待办事项列表中时?我想以编程方式更改待办事项列表中项目的状态,但只有任务项具有状态属性,我无法找出邮件项目的正确等效项。

虽然Programmatically setting a MailItem's followup flag to complete?是相关的,但我不相信它会回答我的问题。标记请求属性似乎记录了相关的后续操作,而不是分配用于任务项(未开始,正在进行,等待某人,延期,已完成)的标准状态之一。

我尝试做的是:outlook的待办事项视图允许您设置Status的任务项和已标记的邮件项。

enter image description here

您还可以通过分配到Status属性以编程方式设置任务项的状态,例如myTaskItem.Status = olTaskWaiting将状态设置为"等待其他人"。我试图找出如何对邮件进行同样的操作。我试图通过myMailItem.FlagStatus执行此操作并且未成功:虽然标记状态 对应于某些状态,但它不是唯一的(0似乎等于正在进行和延迟)。由于Flag Status已被弃用,我认为可能还有其他方法来设置这些值。

我的进步: This page有人和我做的问题几乎完全相同,答案似乎表明"状态"当标记为待办事项时,属性将直接添加到邮件项目中。但是,我不确定添加了什么名称的任务状态。 Item.Status向我提供错误"对象不支持此属性或方法",Item.UserProperties("Status")也会出错。

1 个答案:

答案 0 :(得分:1)

我对此的看法是,因为FlagIcon和FlagStatus已被弃用(可能是自OL2007以来),所以每个人都需要重新考虑他们的目标并修改他们的VBA代码。在某些时候,Outlook将停止在这些属性中放置值(或者属性将消失并抛出错误)。

我的代码正在查找邮件项目有后续标记但没有提醒的实例。我的规则是需要跟进的邮件应该有提醒。在新系统中,看起来邮件跟进类似于任务跟进,因此将邮件项目视为任务,我的代码现在查找具有开始或截止日期但尚未完成但是已完成的邮件项目没有提醒设置,如下所示:

            If (myMail.TaskStartDate <> #1/1/4501# _
              Or _
            myMail.TaskDueDate <> #1/1/4501#) _
             And myMail.TaskCompletedDate = #1/1/4501# _
             And Not myMail.ReminderSet Then

            'Do something here ...

        End If

这比以前复杂得多,但面对进步你能做些什么呢? :-D

(P.S。如果有更好的方法来编码&#34;没有日期&#34;而不是&#34;#1/1 / 4501#&#34;请告诉我。)