TaskItem Methods

These methods are for Outlook 2003 but should also work in Outlook 2007. There are additional methods for Outlook 2007 which are not yet documented here, but I will add them eventually (and indicate which are for Outlook 2007 only). Each function includes sample VBA code.

Assign Method

Function AssignTask(tsk As Outlook.TaskItem) As Outlook.TaskItem
  Set AssignTask = tsk.Assign
End Function

Sub TestAssignTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call AssignTask(tsk)
End Sub

CancelResponseState Method

Function CancelTaskResponseState(tsk As Outlook.TaskItem)
  tsk.CancelResponseState
End Function

Sub TestCancelResponseState()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call CancelTaskResponseState(tsk)
End Sub

Close Method

Function CloseTask(tsk As Outlook.TaskItem, SaveTask As _
                                            Outlook.OlInspectorClose)
  tsk.Close SaveTask
End Function

Sub TestCloseTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call CloseTask(tsk)
End Sub

Copy Method

Function CopyTask(tsk As Outlook.TaskItem) As Outlook.TaskItem
  Set CopyTask = tsk.Copy
End Function

Sub TestCopyTask()
Dim tsk As Outlook.TaskItem
Dim newTask As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Set newTask = CopyTask(tsk)
End Sub

Delete Method

Function DeleteTask(tsk As Outlook.TaskItem)
  tsk.Delete
End Function

Sub TestDeleteTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call DeleteTask(tsk)
End Sub

ClearRecurrencePattern Method

Function ClearRecurrences(ByRef tsk As Outlook.TaskItem)
  tsk.ClearRecurrencePattern
End Function

Sub TestClearRecurrences()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call ClearRecurrences(tsk)
End Sub

Display Method

Function DisplayTask(tsk As Outlook.TaskItem)
  tsk.Display
End Function

Sub TestDisplayTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call DisplayTask(tsk)
End Sub

GetRecurrencePattern Method

Function GetRecurrences(tsk As Outlook.TaskItem) As _
         Outlook.RecurrencePattern
  Set GetRecurrences = tsk.GetRecurrencePattern
End Function

Sub TestGetRecurrences()
Dim tsk As Outlook.TaskItem
Dim RP As Outlook.RecurrencePattern
  Set tsk = Outlook.CreateItem(olTaskItem)
  Set RP = GetRecurrences(tsk)
End Sub

MarkComplete Method

Function MarkTaskComplete(tsk As Outlook.TaskItem)
  tsk.MarkComplete
End Function

Sub TestMarkTaskComplete()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call MarkTaskComplete(tsk)
End Sub

Move Method

Function MoveTask(tsk As Outlook.TaskItem, _
                  fldr As Outlook.MAPIFolder) As Outlook.TaskItem
  Set MoveTask = tsk.Move(fldr)
End Function

Sub TestMarkTaskComplete()
Dim tsk As Outlook.TaskItem
Dim newTask As Outlook.TaskItem
Dim fldr As Outlook.MAPIFolder

  Set tsk = Outlook.CreateItem(olTaskItem)
  Set fldr = Outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders("Sub-Tasks")
  Set newTask = MoveTask(tsk, fldr)
End Sub

Respond Method

Function RespondToTask(tsk As Outlook.TaskItem, response As OlTaskResponse, _
                       showDialog As Boolean, addlPrompt As Boolean)
  Set RespondToTask = tsk.Respond(response, showDialog, addlPrompt)
End Function

Sub TestRespondToTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call RespondToTask(tsk, olTaskAccept, False, False)
End Sub

PrintOut Method

Function PrintTask(tsk As Outlook.TaskItem)
  tsk.PrintOut
End Function

Sub TestPrintTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call PrintTask(tsk)
End Sub

The Save Method

Function SaveTask(tsk As Outlook.TaskItem)
  tsk.Save
End Function

Sub TestSaveTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call SaveTask(tsk)
End Sub

SaveAs Method

Function SaveTaskAs(tsk As Outlook.TaskItem, filePath As String, _
                    Optional fileType As OlSaveAsType = olMSG)
  tsk.SaveAs filePath, fileType
End Function

Sub TestSaveAsTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call SaveTaskAs(tsk, "C:\" & tsk.Subject & ".msg")
End Sub

The Send Method

Function SendTask(tsk As Outlook.TaskItem)
  tsk.Send
End Function

Sub TestSendTask()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call SendTask(tsk)
End Sub

ShowCategoriesDialog Method

Function TaskCategoriesDialog(tsk As Outlook.TaskItem)
  tsk.ShowCategoriesDialog
End Function

Sub TestTaskCategoriesDialog()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call TaskCategoriesDialog(tsk)
End Sub

StatusReport Method

Function TaskStatusReport(tsk As Outlook.TaskItem) As Object
  Set TaskStatusReport = tsk.StatusReport
  TaskStatusReport.Send
End Function

Sub TestTaskStatusReport()
Dim tsk As Outlook.TaskItem
Dim tskReport As Object
  Set tsk = Outlook.CreateItem(olTaskItem)
  Set tskReport = TaskStatusReport(tsk)
End Sub

SkipRecurrence Method

Function TaskSkipRecurrence(tsk As Outlook.TaskItem)
  tsk.SkipRecurrence
End Function

Sub TestTaskSkipRecurrence()
Dim tsk As Outlook.TaskItem
  Set tsk = Outlook.CreateItem(olTaskItem)
  Call TaskSkipRecurrence(tsk)
End Sub

Site last updated: May 11, 2013

Random Data Generator