How to move emails to specified folder after assigning certain category in Outlook?
Supposing you assigned a category to a received email in your Outlook, after assigning category, you want this email to move automatically to a certain email folder named with the category name. For example, an email assigned with category “Private” will be move to a folder name “Private” in your Outlook. How to achieve it? The method in this article can help you solve the problem with ease.
Move emails to specified folder after assigning certain category with VBA
Move emails to specified folder after assigning certain category with VBA
The below VBA code can help to automatically move emails to specified folder after assigning certain category in Outlook. Please do as follows.
1. Press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, double click to open the ThisOutlookSession (Code) window. Then copy below VBA code into the window. See screenshot:
VBA code: Move emails to specified folder after assigning certain category
Private WithEvents xInboxFld As Outlook.Folder
Private WithEvents xInboxItems As Outlook.Items
Private Sub Application_Startup()
Set xInboxFld = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
Set xInboxItems = xInboxFld.Items
End Sub
Private Sub xInboxItems_ItemChange(ByVal Item As Object)
Dim xMailItem As Outlook.MailItem
Dim xFlds As Outlook.Folders
Dim xFld As Outlook.Folder
Dim xTargetFld As Outlook.Folder
Dim xFlag As Boolean
On Error Resume Next
If Item.Class = olMail Then
Set xMailItem = Item
xFlag = False
If xMailItem.Categories <> "" Then
Set xFlds = Application.Session.GetDefaultFolder(olFolderInbox).Folders
If xFlds.Count <> 0 Then
For Each xFld In xFlds
If xFld.Name = xMailItem.Categories Then
xFlag = True
End If
Next
End If
If xFlag = False Then
Application.Session.GetDefaultFolder(olFolderInbox).Folders.Add xMailItem.Categories, olFolderInbox
End If
Set xTargetFld = Application.Session.GetDefaultFolder(olFolderInbox).Folders(xMailItem.Categories)
xMailItem.Move xTargetFld
End If
End If
End Sub
3. Save the code and restart the Outlook.
4. From now on, when assigning category to a receiving email, a folder with the category name will be created automatically under the Inbox folder with the email moved in. See screenshot:
Note: All emails assigned with the same category will be moved to the same folder automatically. But if a new category is assigned to an email, a new folder will be created automatically.
Related articles:
- How to assign category to outgoing email in Outlook?
- How to keep original categories when replying or forwarding email in Outlook?
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!