How to move email message to specified folder after reading in Outlook?
Moving email message to a specified folder after reading is a best way to keep the Inbox folder clean in Outlook. For many Outlook users, they tend to create a rule for these read emails moving. Actually, Outlook does not support this rule wizard process. In this article, we will show you how to move email messages to specified folder after reading with VBA code in Outlook.
- Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by rules; Auto Reply without exchange server, and more automatic features...
- BCC Warning - show message when you try to reply all if your mail address is in the BCC list; Remind When Missing Attachments, and more remind features...
- Reply (All) With All Attachments in the mail conversation; Reply Many Emails at once; Auto Add Greeting when reply; Auto Add Date&Time into subject...
- Attachment Tools: Auto Detach, Compress All, Rename All, Auto Save All... Quick Report, Count Selected Mails, Remove Duplicate Mails and Contacts...
- More than 100 advanced features will solve most of your problems in Outlook 2021 - 2010 or Office 365. Full features 60-day free trial.
You can move email messages to a specified folder after reading with running VBA code in Outlook.
1. Firstly, you need to create a new folder name “Reviewed” under the Inbox folder.
2. Open the Inbox folder, then please press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
3. Then double click to expand Project1 > Microsoft Outlook Objects > ThisOutlookSession to open the VbaProject.OTM editor.
4. Then copy and paste the below VBA code to the VbaProject.OTM editor as shown in above screenshot.
VBA code: move messages after read
Sub MoveInbox2Reviewed() On Error Resume Next Set oOutlook = CreateObject("Outlook.Application") Set oNamespace = oOutlook.GetNamespace("MAPI") Set oFolderSrc = oNamespace.GetDefaultFolder(olFolderInbox) Set oFolderDst = oFolderSrc.Folders("Reviewed") Set oFilteredItems = oFolderSrc.Items.Restrict("[UnRead] = False") For Each oMessage In oFilteredItems oMessage.Move oFolderDst Next End Sub
5. Then click the Save button to save the VBA code and then close the Microsoft Visual Basic for Applications window.
6. Right click the Quick Access Toolbar, and select Customize Quick Access Toolbar from the right-clicking menu. See screenshot:
7. In the Outlook Options dialog box, you need to:
1). Select Macros in the Choose commands from drop-down list;
2). Select Project1. ThisOutlookSession in the box under the Choose commands from drop-down list;
3). Click the Add button;
4). Click the OK button.
8. Then you can see the Macro button showing in the Quick Access Toolbar. Make sure that you are locating in the inbox folder you want to move all the read messages from, then click the Macro button to run the VBA code inside the Inbox.
1. This VBA code can be applied in Outlook 2007, 2010 and 2013; But, in Outlook 2007, you can directly click the Run button to run the code.
2. If there are multiple email accounts existing in your Outlook, the VBA code can only be applied in the account which data file is set as default. You can check the default data file by clicking File > Info > Account Settings > Account Settings to open the Account Settings dialog box. Then go to the Data File tab, you will see the default data file is marked by before.
3. If you want to change the default data file to another email account, please select and highlight the account you want to set as default, then click the Set as Default in the Account Settings dialog box.
4. When running the VBA code at the first time and finding out the read messages are not moved all at once, please keep clicking the Macro button until all read messages in the Inbox are moved out.
Best Office Productivity Tools
Kutools for Outlook - Over 100 Powerful Features to Supercharge Your Outlook
Over 100 Features Await Your Exploration! Click Here to Discover More.