是否可以在 Outlook 2007 中创建自定义后续标志?

dch*_*les 8 windows microsoft-outlook

标准的后续标志是:“今天”、“明天”、“本周”、“下周”和“无日期”。我想在此列表中为“本月”添加另一个选项。

目前,我通过使用“自定义...”跟进选项并指定一个开始日期/截止日期(即当月的最后一天)来完成同样的事情。虽然它比使用预设的后续选项之一花费更多时间,但效果很好。但是,如果选择了多个项目,“自定义...”选项将被禁用,我必须单独设置每个项目。这是极大的浪费时间!

我查看了 Outlook 自定义设置并在网上搜索了一种添加自定义后续标志的方法,但没有任何运气。有任何想法吗?

更新: Bogdan_Ch 提供的解决方案也适用于 Outlook 2010。

小智 3

想法很简单 - 编写您自己的 VBA 宏。

下面是一个可以完成这项工作的 VBA 代码(SetFollowupToMonthEndMacro 是可以与按钮或热键组合关联的宏)

Sub SetFollowupToMonthEndMacro()

    Dim sel As Outlook.selection
    Set sel = Application.ActiveExplorer.selection

    Dim item As Object
    Dim i As Integer

    For i = 1 To sel.Count
         Set item = sel.item(i)
         If item.Class = olMail Then
                Dim mail As MailItem
                Set mail = item
                mail.MarkAsTask (olMarkNoDate)
                mail.TaskStartDate = SetLastDate(Now)
                mail.Save
         End If

    Next i


End Sub


Private Function SetLastDate(pDate As Date) As Date
 Dim iDay As Integer
 iDay = Day(pDate)
 Dim iLastDay As Integer
 Select Case Month(pDate)
  Case 1, 3, 5, 7, 8, 10, 12
   iLastDay = 31
  Case 4, 6, 9, 11
   iLastDay = 30
  Case 2
   If (Year(pDate) Mod 4) = 0 Then
    iLastDay = 29
   Else
    iLastDay = 28
   End If
 End Select

 SetLastDate = DateAdd("d", iLastDay - iDay, pDate)

End Function
Run Code Online (Sandbox Code Playgroud)

如果没有 VBA 编程,则无法从设置或其他方式进行设置,因为不幸的是,在内部 Outlook 函数 MailItem.MarkAsTask(MarkInterval) MarkInterval 参数中只能有 OlMarkInterval 枚举值之一

olMarkNoDate 4 将任务标记为到期但不指定日期。olMarkNextWeek 3 标记下周到期的任务。olMarkThisWeek 2 标记本周到期的任务。olMarkToday 0 标记今天到期的任务。olMarkTomorrow 1 标记明天到期的任务。

所以如果内部功能有限制,UI自然也会有同样的限制。