How to group and sort emails by month in Outlook?
Emails are sorted by received date in the Inbox of Outlook by default. However, there is no command to sort or group all emails by the received month. Here I will introduce a way to group and sort all emails by month in Outlook.
This method will guide you to create a new column named as Month, next apply a VBA macro to extract received month into the new column, and then you can sort or group all emails by the Month column in Outlook.
1. Open a mail folder where you will sort or group emails by month, and click the View Settings button on the View tab in Outlook 2010 and later version.
Note: In Outlook 2007, you can click the View > Current View > Customize current view.
2. In the coming Advanced View Settings/Customize View dialog box, click the Columns button (or Fields button).
3. In the Show Column/Fields dialog box, click the New Column button (or New Field button) to open New Column/Field dialog box, type Month in the Name box, keep Text selected in both Type box and Format box, and then click the OK button. See screenshot below:
4. Now you get back to the Show Columns/Fields dialog box, click to select the Month item in the Show these columns (or Fields) in this order box, and move it below the Received by clicking the Move Up button, and at last click the OK button.
5. Click the OK button to close the Advanced View Settings/Customize View dialog box.
6. Select all emails in the opening folder with selecting any email and then pressing the Ctrl + A keys simultaneously.
Note: If the Reading Pane is turning on, please close it with clicking the View > Reading Pane > Off.
7. Open the Microsoft Visual Basic for Applications window with pressing the Alt + F11 keys in a meanwhile, and then click the Insert > Module.
8. Paste the following VBA macro into the module:
VBA: Sort or group emails by month
Sub ListSelectionMonth() Dim aObj As Object Dim oProp As Outlook.UserProperty Dim sMonth On Error Resume Next For Each aObj In Application.ActiveExplorer.Selection Set oMail = aObj sMonth = Month(oMail.ReceivedTime) Set oProp = oMail.UserProperties.Add("Month", olText, True) oProp.Value = sMonth oMail.Save Err.Clear Next End Sub
9. Press the F5 key to run this VBA macro.
10. Now each email’s received month is extracted into the following Month column. To sort all emails by month in this opening folder, just click the column header of Month. See screenshot:
Note: To group all emails by month in this opening folder, right click the column header of Month, and then select the Group By This Field from the right-clicking menu. See screenshot:
- Auto CC/BCC by rules when sending email; Auto Forward Multiple Emails by custom; 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 in seconds; Auto Add Greeting when reply; Add Date into subject...
- Attachment Tools: Manage All Attachments in All Mails, Auto Detach, Compress All, Rename All, Save All... Quick Report, Count Selected Mails...
- Powerful Junk Emails by custom; Remove Duplicate Mails and Contacts... Enable you to do smarter, faster and better in Outlook.
You are guest
or post as a guest, but your post won't be published automatically.
To post as a guest, your comment is unpublished.· 2 years agoThis will also help.
To post as a guest, your comment is unpublished.· 2 years agoThe code works as in the article. But it does not apply to new letters. Every time you need to go to the created module in the Visual Basik and press F5.
To post as a guest, your comment is unpublished.· 3 years agoI used the above vba and let me begin by saying this does help in micro management which is not available by default. this is beneficial for archival and storage and not something supposed to work automatically for incoming email. I was able to modify this a bit and also add a year column. So for all emails I was able to get a month and year so that I can group and then regroup (by year and then by month). What I did find however is there is some kind of limitation to the number of items it goes through and then exists (not sure why). For example if I were to select a folder with 18k-19k emails, it will loop only through some and then at the end of the run it will not update all the emails with the required. However if you run in smaller batches then it runs perfectly fine. The painful part here is to keep on selecting in batches. This is a pain for people like me who wish to manage or rather arrange years or emails that runs in a 6 figures in numbers. Anyone here been able to figure this out out or willing to go on a troubleshooting spree to fix this or how this can be addressed ?
To post as a guest, your comment is unpublished.· 3 years agoThat is, I want to group mails by subject and put the group with maximum mails on the top. How can I do that?
To post as a guest, your comment is unpublished.· 3 years agoI want to :
1. Group mails by subject
2. Sort them by number of e-mails inside the group
How can I do achieve this?
To post as a guest, your comment is unpublished.· 3 years agoI want this too
To post as a guest, your comment is unpublished.· 3 years agoIs it possible to create VBA macro to group and sort emails by week?
To post as a guest, your comment is unpublished.· 4 years agoIsnt there a way to select all emails automatically before the for...next loop?
To post as a guest, your comment is unpublished.· 6 years agoNew mail wont received in specified month category. New mail comes unedr none category. Plz rectify the problem
To post as a guest, your comment is unpublished.· 6 years agoThis works for emails already in the Inbox, but does NOT create/enter data in the "Month" field for NEW emails!