Sometimes, you may forget marking tasks complete, such that there may be many overdue tasks in your Outlook Tasks folder. In this case, you can use either way introduced in this article to batch mark all overdue tasks complete in one go.
As you can see, once a task becomes overdue, it will be shown in red color, which is quite striking. However, most of time, why there are so many overdue tasks in your Outlook is that you forget marking them complete. Therefore, often, you may wish to batch mark all such overdue tasks complete. To look at this issue, here we will teach you 2 means.

Method 1: Set View Filters & Mark Complete Manually
- To start with, launch Outlook and turn to Tasks pane.
- Then open a specific Tasks folder.
- Next switch to “View” tab and hit “View Settings” button.
- In the new popup dialog box, click “Filter”. This will open a second dialog box.
- Subsequently, switch to “Advanced” tab and then add a specific filter – “Due Date on or before Yesterday”, like the following image.
- After that, click a series of “OK” to activate the new view filters and back to main Tasks pane.
- Now you will see that only overdue tasks show in the list. You can click one of them and then press “Ctrl + A” to select all of them.
- Lastly, click on the “Mark Complete” button under “Home” tab.
By this means, if you have many Tasks folder, you should manually set view filters on each Tasks folder respectively. It will be very tedious. Therefore, it’s suggested to use the following means, which will quickly mark all overdue tasks in all Tasks folder complete in bulk.
Method 2: Mark Complete with Outlook VBA
- At the very outset, press “Alt + F11” key buttons in main Outlook window.
- Then in the Outlook VBA editor, copy and paste the following VBA codes into an empty module window.
Sub BatchMarkAllOverdueTasksComplete()
Dim objStores As Outlook.Stores
Dim objStore As Outlook.Store
Dim objPSTFile As Outlook.Folder
Dim objFolders As Outlook.folders
Dim objFolder As Object
Set objStores = Application.Session.Stores
'Process All PST Files
For Each objStore In objStores
Set objPSTFile = objStore.GetRootFolder
For Each objFolder In objPSTFile.folders
Call ProcessFolders(objFolder)
Next
Next
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim obTasks As Outlook.Items
Dim objTask As Outlook.TaskItem
Dim objSubfolder As Outlook.Folder
'Find the overdue tasks and mark complete
If objCurrentFolder.DefaultItemType = olTaskItem Then
Set objTasks = objCurrentFolder.Items
For Each objTask In objTasks
If (objTask.DueDate < Date) And (objTask.Complete = False) Then
objTask.MarkComplete
End If
Next
End If
'Process all Task folders recursively
If objCurrentFolder.folders.Count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- After that, you should ensure Outlook permits macros in macro settings.
- Lastly, you can have a try. Click into “BatchMarkAllOverdueTasksComplete” subroutine and press F5 key to run it.
- At once, all the overdue tasks in all Tasks folder will be marked complete in batches.
Tips for Avoiding PST Data Loss
Due to the fact that Outlook PST file is prone to error and corruption, it demands you to make great efforts to safeguard your PST data. First of all, you should back up PST file on a regular basis, which will save you from to repair PST in the event of PST damage. Besides, it is also prudent to prepare a potent fix tool in advance, like DataNumen Outlook Repair.
Author Introduction:
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including fix mdf and outlook repair software products. For more information visit www.datanumen.com


