本文將教您如何讓Outlook自動計算每天收到的電子郵件數量並將其寫入Excel文件。
許多用戶需要計算每天收到的電子郵件總數。 此外,為了將來進行更方便的檢查,許多人習慣將總數記錄到Excel文件中。 在這種情況下,您當然可以選擇每天手動計數和記錄。 但是,這有點麻煩。 而且您有時可能會忘記這樣做。 因此,您必須希望有一種方便的方法,該方法可以使Outlook自動執行此操作。 為響應此要求,下面我們將教您如何使用VBA來實現它。

在Excel文件中自動記錄每天收到的電子郵件總數
- 首先,啟動Outlook應用程序。
- 然後在Outlook主窗口中按“ Alt + F11”鍵快捷方式。
- 接下來在彈出的VBA編輯器窗口中,打開“ ThisOutlookSession”項目。
- 隨後,將以下VBA代碼複製並粘貼到該項目中。
Private Sub Application_Reminder(ByVal Item As Object)
If Item.Class = olTask And Item.Subject = "Update Email Count" Then
Call GetAllInboxFolders
End If
End Sub
Private Sub GetAllInboxFolders()
Dim objInboxFolder As Outlook.Folder
Dim strExcelFile As String
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim nNextEmptyRow As Integer
Dim lEmailCount As Long
lEmailCount = 0
Set objInboxFolder = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
Call UpdateEmailCount(objInboxFolder, lEmailCount)
‘Change the path to the Excel file
strExcelFile = "E:\Email\Email Count.xlsx"
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Open(strExcelFile)
Set objExcelWorksheet = objExcelWorkbook.Sheets("Sheet1")
nNextEmptyRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
'Add the values into the columns
objExcelWorksheet.Range("A" & nNextEmptyRow) = nNextEmptyRow - 1
objExcelWorksheet.Range("B" & nNextEmptyRow) = Year(Date - 1) & "-" & Month(Date - 1) & "-" & Day(Date - 1)
objExcelWorksheet.Range("C" & nNextEmptyRow) = lEmailCount
'Fit the columns from A to C
objExcelWorksheet.Columns("A:C").AutoFit
'Save the changes and close the Excel file
objExcelWorkbook.Close SaveChanges:=True
End Sub
Private Sub UpdateEmailCount(objFolder As Outlook.Folder, ByRef lCurEmailCount As Long)
Dim objItems As Outlook.Items
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim strDay As String
Dim strReceivedDate As String
Dim lEmailCount As Long
Dim objSubFolder As Outlook.Folder
Set objItems = objFolder.Items
objItems.SetColumns ("ReceivedTime")
strDay = Year(Date - 1) & "-" & Month(Date - 1) & "-" & Day(Date - 1)
For Each objItem In objItems
If objItem.Class = olMail Then
Set objMail = objItem
strReceivedDate = Year(objMail.ReceivedTime) & "-" & Month(objMail.ReceivedTime) & "-" & Day(objMail.ReceivedTime)
If strReceivedDate = strDay Then
lCurEmailCount = lCurEmailCount + 1
End If
End If
Next
'Process the subfolders in the folder recursively
If (objFolder.Folders.Count > 0) Then
For Each objSubFolder In objFolder.Folders
Call UpdateEmailCount(objSubFolder, lCurEmailCount)
Next
End If
End Sub
- 接下來,對該代碼進行簽名並更改Outlook宏設置以允許簽名的宏。
- 之後,您需要每天創建一個重複任務。
- 首先,在“任務”窗格中單擊“新建任務”按鈕。
- 在彈出的新任務窗口中,單擊“重複發生”按鈕。
- 然後在隨後的對話框中,選擇“每天”,“每1天”和“無結束日期”,最後單擊“確定”。
- 以後根據您的需要更改任務主題和提醒。
- 最後單擊“保存並關閉”按鈕。
- 從現在開始,每次執行此任務的提醒警報時,Outlook都會自動計算昨天收到的電子郵件,然後將其記錄到Excel文件中,如以下屏幕截圖所示:
避免永久性PST數據丟失
沒有人願意接受永久性的PST數據丟失。 但是,Outlook PST文件容易損壞。 因此,您應採取足夠的預防措施,例如進行一致且最新的PST數據備份並保持功能強大。 PST恢復 附近的工具,例如 DataNumen Outlook Repair.
作者簡介:
Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 sql修復 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM



