Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

The standard follow-up flags are: "Today", "Tomorrow", "This Week", "Next Week" and "No Date". I'd like to add another option to this list for "This Month".

Currently I accomplish the same thing by using the "Custom..." follow up option and specifying a start date/due date that is the last day of the current month. This works fine although it does take more time than using one of the preset follow-up options. However, if more than one item is selected, the "Custom..." option is disabled and I have to set each one individually. This is a tremendous waste of time!

I have looked in the Outlook customization settings and searched the web for a way to add custom follow-up flags without any luck. Any ideas?

Update: The solution provided by Bogdan_Ch also works in Outlook 2010.

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

Idea is simple - write your own VBA macro.

Here is a VBA code that will do the work (SetFollowupToMonthEndMacro is the macros that you can associate with a button or a hot-key combination)

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

There is no way to setup this from settings or somehow else, without VBA programming, because, unfortunately, in internal Outlooks function MailItem.MarkAsTask(MarkInterval) MarkInterval parameter can have only one of OlMarkInterval Enumeration values

olMarkNoDate 4 Mark the task due with no date. olMarkNextWeek 3 Mark the task due next week. olMarkThisWeek 2 Mark the task due this week. olMarkToday 0 Mark the task due today. olMarkTomorrow 1 Mark the task due tomorrow.

So if internal function has the limitation, UI will naturally have the same limitation too.

share|improve this answer
    
This is awesome! Thanks so much for your help. It works great. –  Marve Aug 4 '09 at 12:16
add comment

In outlook 2010 you can also accomplish it thru "Manage Quick Steps". There are 2 more actions that those not exist in the standard follow-up presets: This Month & Next Month.

outlook-2010-quick-steps

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.