Planning for support desks isn’t easy. Support request volumes adjust with month-end, billing and payment cycles, holidays, etc. Phone call volumes are usually pretty easy to find. Emails — not always so easy. That’s why there’s this little script. Navigate in Outlook to the folder you want to count (maybe the inbox or archives of a shared mailbox) enter the date (be careful that you don’t use any leading zeros) and get the total number of emails in that folder for the same day last week, last month, or maybe for the same holiday last year.
Sub EmailsOnDate() Dim objOutlook As Object Dim objMAPI As Object Dim objFolder As MAPIFolder Dim oDate As String Set objOutlook = CreateObject("Outlook.Application") Set objMAPI = objOutlook.GetNamespace("MAPI") oDate = InputBox("What date would you like counted? " + vbCrLf + "format: YYYY-M-D") On Error Resume Next Set objFolder = Application.ActiveExplorer.CurrentFolder If Err.Number <> 0 Then Err.Clear MsgBox "Invalid folder. Please select the folder you want counted and try again." Exit Sub End If Dim ssitem As MailItem Dim dateStr As String Dim myItems As Outlook.Items Dim dict As Object Dim msg As String Set dict = CreateObject("Scripting.Dictionary") Set myItems = objFolder.Items myItems.SetColumns ("ReceivedTime") ' match dates For Each myItem In myItems dateStr = GetDate(myItem.ReceivedTime) If dateStr = oDate Then If Not dict.Exists(dateStr) Then dict(dateStr) = 0 End If dict(dateStr) = CLng(dict(dateStr)) + 1 End If Next myItem ' daily count msg = "" For Each o In dict.Keys msg = msg & o & ": " & dict(o) & " items" & vbCrLf Next If msg <> "" Then MsgBox msg Else: MsgBox ("No items found") End If Set objFolder = Nothing Set objMAPI = Nothing Set objOutlook = Nothing End Sub Function GetDate(dt As Date) As String GetDate = Year(dt) & "-" & Month(dt) & "-" & Day(dt) End Function