标准后续标记有:“今天”、“明天”、“本周”、“下周”和“无日期”。我想为这个列表添加另一个“本月”选项。
目前,我通过使用“自定义...”后续选项并指定当前月份最后一天的开始日期/到期日期来实现相同的目的。虽然这比使用预设的后续选项花费的时间更多,但效果很好。但是,如果选择了多个项目,“自定义...”选项将被禁用,我必须单独设置每个项目。这真是浪费时间!
我查看了 Outlook 自定义设置,并在网上搜索了添加自定义后续标记的方法,但没有任何收获。有什么想法吗?
更新:Bogdan_Ch 提供的解决方案也适用于 Outlook 2010。
答案1
想法很简单——编写你自己的 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
没有办法通过设置或其他方式进行设置,无需 VBA 编程,因为不幸的是,在内部 Outlook 函数 MailItem.MarkAsTask(MarkInterval) 中 MarkInterval 参数只能有一个 OlMarkInterval 枚举值
olMarkNoDate 4 标记任务截止但无日期。 olMarkNextWeek 3 标记任务下周截止。 olMarkThisWeek 2 标记任务本周截止。 olMarkToday 0 标记任务今天截止。 olMarkTomorrow 1 标记任务明天截止。
所以如果内部功能有限制,UI自然也会有同样的限制。
答案2
在 Outlook 2010 中,您也可以通过“管理快速步骤”来完成此操作。还有两个在标准后续预设中不存在的操作:本月和下个月。