---
description: Multiple users long for a solution to batch mark all emails as read in all Outlook folders. In this article, we will introduce such a method to you.  
title: How to Batch Mark All Emails as Read in All Outlook Folders with VBA
image: https://www.datanumen.com/blogs/wp-content/uploads/2018/03/mark-all-emails-as-read.jpg
---

 

* [ ](https://www.facebook.com/DataNumen)
* [ ](http://www.linkedin.com/company/datanumen)
* [ ](https://twitter.com/DataNumen)

[Home](https://www.datanumen.com/blogs/) \> [Solutions](https://www.datanumen.com/blogs/category/solutions/) \> [Office Solutions](https://www.datanumen.com/blogs/category/solutions/office-solutions/) \> [Outlook Solutions](https://www.datanumen.com/blogs/category/solutions/office-solutions/outlook-solutions/) \> How to Batch Mark All Emails as Read in All Outlook Folders with VBA

# How to Batch Mark All Emails as Read in All Outlook Folders with VBA

[Outlook Solutions](https://www.datanumen.com/blogs/category/solutions/office-solutions/outlook-solutions/)  September 29, 2025 

Share Now: 
* [ ](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://x.com/share?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F&text=How+to+Batch+Mark+All+Emails+as+Read+in+All+Outlook+Folders+with+VBA)
* [ ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](javascript:void%28%28function%28%29%7Bvar%20e=document.createElement%28'script'%29;e.setAttribute%28'type','text/javascript'%29;e.setAttribute%28'charset','UTF-8'%29;e.setAttribute%28'src','//assets.pinterest.com/js/pinmarklet.js?r='+Math.random%28%29%2A99999999%29;document.body.appendChild%28e%29%7D%29%28%29%29;)
* [ ](https://www.reddit.com/submit?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F&title=How+to+Batch+Mark+All+Emails+as+Read+in+All+Outlook+Folders+with+VBA)
* [ ](https://www.tumblr.com/share/link?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://vk.com/share.php?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://www.xing.com/spi/shares/new?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)

_Multiple users long for a solution to batch mark all emails as read_ _in all Outlook folders_ _. In this article, we will introduce such a method to you._ 

As we all know, it is easy to mark all mails in a folder as read. Just select and right click on the folder and then choose “Mark all as read” option in the context menu. However, if there are several folders having unread emails, by the above means, you have to perform on the folders one by one. It is too troublesome. Hence, here we will share you a much more efficient way, which will allow you to realize it in bulk.

## Batch Mark All Emails as Read in All Outlook Folders

1. To start with, launch Outlook application.
2. Then, press “Alt + F11” to access Outlook VBA editor.
3. Next, in the “Microsoft Visual Basic for Applications” window, copy the code below into an unused module.

Sub MarkAllItemsAsRead()
    Dim objStores As Outlook.Stores
    Dim objStore As Outlook.Store
    Dim objOutlookFile As Outlook.Folder
    Dim objFolder As Outlook.Folder
 
    'Process all Outlook files
    Set objStores = Outlook.Application.Session.Stores
  
    For Each objStore In objStores
        Set objOutlookFile = objStore.GetRootFolder
 
        For Each objFolder In objOutlookFile.Folders
            'Process mail folders
            If objFolder.DefaultItemType = olMailItem Then
               Call ProcessFolders(objFolder)
            End If
        Next
    Next
End Sub

Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objUnreadItems As Outlook.Items
    Dim i As Integer
    Dim objItem As Object
    Dim objSubFolder As Outlook.Folder
 
    Set objUnreadItems = objCurFolder.Items.Restrict("[Unread]=True")
 
    'Mark all unread emails as read
    For i = 1 To objUnreadItems.Count
        Set objItem = objUnreadItems.Item(i)
        objItem.UnRead = False
        objItem.Save
    Next
 
    'Process subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubFolder In objCurFolder.Folders
           Call ProcessFolders(objSubFolder)
       Next
    End If
End Sub

![VBA Code - Batch Mark All Emails as Read in All Outlook Folders]()

1. Afterwards, put cursor into the first subroutine.
2. Subsequently, press “F5” key button or click the “Run” icon in the toolbar.
3. Eventually, after macro completes, you can go back to mail folder list.
4. There, you’ll see that all unread emails have been marked as read, as shown in the screenshot.![All Emails Have Been Read]()

## Escape from Miserable Outlook Data Loss

Users may have accepted a fact that Word documents and Excel workbooks can be corrupt easily. As a matter of fact, similar to these files, Outlook data file is also prone to damage. Hence, if you are reluctant to experience that, you ought to take some actions. It should include precautions, like regular backups and blocking all malware or viruses, and some relief measures, like knowing how to launch inbox repair tool, [Scanpst](https://www.datanumen.com/outlook-repair/) and keeping a powerful external fix tool, such as 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 [repair mdf](https://www.datanumen.com/sql-recovery/) and outlook repair software products. For more information visit [www.datanumen.com](https://www.datanumen.com/)

Share Now: 
* [ ](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://x.com/share?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F&text=How+to+Batch+Mark+All+Emails+as+Read+in+All+Outlook+Folders+with+VBA)
* [ ](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](javascript:void%28%28function%28%29%7Bvar%20e=document.createElement%28'script'%29;e.setAttribute%28'type','text/javascript'%29;e.setAttribute%28'charset','UTF-8'%29;e.setAttribute%28'src','//assets.pinterest.com/js/pinmarklet.js?r='+Math.random%28%29%2A99999999%29;document.body.appendChild%28e%29%7D%29%28%29%29;)
* [ ](https://www.reddit.com/submit?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F&title=How+to+Batch+Mark+All+Emails+as+Read+in+All+Outlook+Folders+with+VBA)
* [ ](https://www.tumblr.com/share/link?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://vk.com/share.php?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)
* [ ](https://www.xing.com/spi/shares/new?url=https%3A%2F%2Fwww.datanumen.com%2Fblogs%2Fhow-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba%2F)

[← Previous post](https://www.datanumen.com/blogs/3-best-practices-to-build-effective-relationship-tables-in-ms-access/)

[Next post →](https://www.datanumen.com/blogs/how-to-keep-the-reminder-of-an-outlook-task-after-assigning-it-to-others/)

Comments are closed.

![Data Recovery Blog]() 

Follow or like us on Facebook, LinkedIn and Twitter to get all promotions, latest news and updates on our products and company.

* [ ](https://www.facebook.com/DataNumen)
* [ ](http://www.linkedin.com/company/datanumen)
* [ ](https://twitter.com/DataNumen)

### Featured Products

* [DataNumen Outlook Repair](https://www.datanumen.com/outlook-repair/)
* [DataNumen SQL Recovery](https://www.datanumen.com/sql-recovery/)
* [DataNumen Exchange Recovery](https://www.datanumen.com/exchange-recovery/)
* [DataNumen Access Repair](https://www.datanumen.com/access-repair/)
* [DataNumen Excel Repair](https://www.datanumen.com/excel-repair/)
* [DataNumen PDF Repair](https://www.datanumen.com/pdf-repair/)
* [DataNumen Word Repair](https://www.datanumen.com/word-repair/)
* [DataNumen Zip Repair](https://www.datanumen.com/zip-repair/)

### Popular posts

[ ](#masthead)

```json
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#article","isPartOf":{"@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/"},"author":{"name":"AuthorCCW","@id":"https:\/\/www.datanumen.com\/blogs\/#\/schema\/person\/33ded6c47c77587f9158d99f05e23957"},"headline":"How to Batch Mark All Emails as Read in All Outlook Folders with VBA","datePublished":"2018-03-26T03:18:29+00:00","dateModified":"2025-09-29T05:55:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/"},"wordCount":344,"commentCount":2,"publisher":{"@id":"https:\/\/www.datanumen.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2018\/03\/mark-all-emails-as-read.jpg","articleSection":["Outlook Solutions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/","url":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/","name":"How to Batch Mark All Emails as Read in All Outlook Folders with VBA","isPartOf":{"@id":"https:\/\/www.datanumen.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#primaryimage"},"image":{"@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#primaryimage"},"thumbnailUrl":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2018\/03\/mark-all-emails-as-read.jpg","datePublished":"2018-03-26T03:18:29+00:00","dateModified":"2025-09-29T05:55:59+00:00","description":"Multiple users long for a solution to batch mark all emails as read in all Outlook folders. In this article, we will introduce such a method to you.  ","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanumen.com\/blogs\/how-to-batch-mark-all-emails-as-read-in-all-outlook-folders-with-vba\/#primaryimage","url":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2018\/03\/mark-all-emails-as-read.jpg","contentUrl":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2018\/03\/mark-all-emails-as-read.jpg","width":742,"height":395,"caption":"VBA Code - Batch Mark All Emails as Read in All Outlook Folders"},{"@type":"WebSite","@id":"https:\/\/www.datanumen.com\/blogs\/#website","url":"https:\/\/www.datanumen.com\/blogs\/","name":"Data Recovery Blog","description":"Discuss every aspect of data recovery","publisher":{"@id":"https:\/\/www.datanumen.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.datanumen.com\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.datanumen.com\/blogs\/#organization","name":"Data Recovery Blog","url":"https:\/\/www.datanumen.com\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.datanumen.com\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2019\/02\/logowithouttext.jpg","contentUrl":"https:\/\/www.datanumen.com\/blogs\/wp-content\/uploads\/2019\/02\/logowithouttext.jpg","width":296,"height":397,"caption":"Data Recovery Blog"},"image":{"@id":"https:\/\/www.datanumen.com\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataNumen","https:\/\/x.com\/DataNumen","http:\/\/www.linkedin.com\/company\/datanumen","https:\/\/myspace.com\/datanumen\/","http:\/\/www.pinterest.com\/datanumen\/","https:\/\/www.youtube.com\/channel\/UCVIIuuKfUBHSJauUaVP13tw"]},{"@type":"Person","@id":"https:\/\/www.datanumen.com\/blogs\/#\/schema\/person\/33ded6c47c77587f9158d99f05e23957","name":"AuthorCCW","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3516ed90fc242780d3947a989f895bc46e70c3e83485d30f2b457a007906aa58?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3516ed90fc242780d3947a989f895bc46e70c3e83485d30f2b457a007906aa58?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3516ed90fc242780d3947a989f895bc46e70c3e83485d30f2b457a007906aa58?s=96&d=mm&r=g","caption":"AuthorCCW"},"sameAs":["https:\/\/www.datanumen.com\/"]}]}
```
