I spent some time this week pimping out (actually whatever the opposite of pimping out is) Outlook to try and improve my workflow. I did my usual remove all toolbar / status bar trick, so Outlook now looks like this:

Media_httpfarm2static_thpqj

Next I wrote a couple of Outlook macros: one to take the selected items and move them to a folder called "Archive", and another that moves the selected items to a folder called "FollowUp". The FollowUp macro also creates a new to-do item bound for today so that it shows up in my task list.

Enum ItemOptions
MarkAsRead
MarkAsUnRead
MarkAsTaskForToday
End Enum

Private Sub MoveToFolder(folder As String, options As ItemOptions) On Error Resume Next

Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder
Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objFolder = objInbox.Folders(folder)
If objFolder Is Nothing Then
MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
End If
If Application.ActiveExplorer.Selection.Count = 0 Then
'Require that this procedure be called only when a message is selected
Exit Sub
End If
For Each objItem In Application.ActiveExplorer.Selection
If objFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail Then
If options = MarkAsRead Then
objItem.UnRead = False
End If
If options = MarkAsTaskForToday Then
objItem.MarkAsTask olMarkToday
End If
objItem.Move objFolder
End If
End If
Next
Set objItem = Nothing
Set objFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing

End Sub

Sub MoveSelectedMessagesToArchive() MoveToFolder "Archives", MarkAsRead End Sub

Sub MoveSelectedMessagesToFollowUp() MoveToFolder "FollowUp", MarkAsTaskForToday End Sub

Now keybindings in Outlook are horribly broken. There's no way to assign a macro to an arbitrary key binding. Instead, you have to bind the macro to a toolbar button; that's what the two toolbar buttons (text-only) do. To activate those two toolbar buttons, I bound them to ALT-Q (archive) and ALT-W (follow-up) respectively. By binding to keys on the left-hand side of the keyboard, I can filter email with my left hand, while navigating my emails via the cursor up/down keys with my right hand.

If the Outlook team can add the ability to bind arbitrary keystrokes to macros (or better yet, to provide parameterized macros) I'd be in heaven. This way I could defer a task for a known period of time via something like ALT-W 7 for make this task due in 7 days.

I also learned about two very useful Outlook keys: ALT-F1 and ALT-F2, which will selectively hide your navigation bar and to-do bar respectively (try it, you'll like it). I'm a very keyboard driven guy, so this arrangement makes me very happy now.

Are there any other useful Outlook tips folks would like to share?