Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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
up vote 2 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)
         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
    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

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.


share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .