Some users would like to not auto mark the new incoming emails as read until they flag or categorize them by color in their Outlook. So in this article, we will teach a method to get it in quick time via Outlook VBA.
Outlook has a native feature for auto marking emails as read depending on the concrete seconds of your viewing the emails in the reading pane or based on the changes of email selection. It’s indeed helpful. Nevertheless, some users still want another choice – keeping emails as unread until flagged or color categorized. It is obvious that Outlook doesn’t provide such a function. Therefore, if you would like to achieve it, you can resort to the following means, which will guide you to use Outlook VBA to get it.
NOT Auto Mark Email as Read until Flagging or Color Categorizing It
- In the first place, start your Outlook application.
- Then you should head to “View” tab.
- Under this tab, find and click on the “Reading Pane”, and then select “Options” from the drop down list.
- Next in the popup dialog box, you need to ensure that the first two options are deselected and click “OK” to save the changes.
- Subsequently, press “Alt + F11” key shortcuts.
- Then in the VBA editor window, open the “ThisOutlookSession” project.
- Next, you need to copy and paste the following VBA codes into it.
Public WithEvents objInboxItems As Outlook.Items Public WithEvents objExplorer As Outlook.Explorer Public WithEvents objInboxMail As Outlook.MailItem Private Sub Application_Startup() Set objInboxItems = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items Set objExplorer = Outlook.Application.ActiveExplorer End Sub Private Sub objInboxItems_ItemChange(ByVal Item As Object) 'Mark email as read when it is color categorized or flagged If (Item.Categories <> "") Or (Item.IsMarkedAsTask = True) Then Item.UnRead = False End If End Sub Private Sub objExplorer_SelectionChange() On Error Resume Next Set objInboxMail = objExplorer.Selection.Item(1) End Sub 'Outlook will still auto mark the emails as read when you open, reply or forward the emails 'So the following lines are aimed to keep them as unread even you open, reply or forward them Private Sub objInboxMail_Open(Cancel As Boolean) objInboxMail.UnRead = True End Sub Private Sub objInboxMail_Forward(ByVal Forward As Object, Cancel As Boolean) objInboxMail.UnRead = True End Sub Private Sub objInboxMail_Reply(ByVal Response As Object, Cancel As Boolean) objInboxMail.UnRead = True End Sub Private Sub objInboxMail_ReplyAll(ByVal Response As Object, Cancel As Boolean) objInboxMail.UnRead = True End Sub
- After that, you ought to sign this code.
- Later change Outlook macro security settings to enable the digitally signed macros.
- Finally you can restart your Outlook to activate the new VBA project. From now on, Outlook will keep the new incoming emails as read unless you flag or categorize them.
Respond to Outlook’s Vulnerability
As Outlook is susceptible to errors and corruptions, you should make a lot of precautions to avoid Outlook data loss. For example, you ought to back up your Outlook data on a regular basis. Moreover, in order to fix Outlook in time, you had better prepare a robust repair tool, such as DataNumen Outlook Repair. Last but not least, pay attention to your daily behaviors in Outlook.
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including recover sql and outlook repair software products. For more information visit www.datanumen.com