หากคุณจัดเก็บอีเมลที่ส่งไว้ในหลายโฟลเดอร์และตอนนี้ต้องการนับอีเมลที่ส่งทั้งหมดตามเดือนคุณสามารถอ่านบทความนี้ได้ ที่นี่เราจะแนะนำวิธีที่รวดเร็วมากในการรับมัน
บทความก่อนหน้านี้ -“วิธีนับอีเมลขาเข้าอย่างรวดเร็วตามวันเดือนหรือปีผ่าน Outlook VBA” ได้แชร์วิธีการนับอีเมลตามเดือน อย่างไรก็ตามสามารถประมวลผลอีเมลในโฟลเดอร์เดียว หากคุณต้องการนับอีเมลในหลาย ๆ โฟลเดอร์หรือแม้แต่โฟลเดอร์อีเมลทั้งหมดคุณควรใช้วิธีการอื่น ดังนั้นในต่อไปนี้เราจะนำเสนออีกวิธีที่เร็วกว่าให้คุณ
นับอีเมลที่ส่งตามเดือน
- เริ่มต้นด้วยการเข้าถึงโปรแกรมแก้ไข Outlook VBA ผ่านทาง“ Alt + F11”
- จากนั้นเปิดใช้งานการอ้างอิงถึง“ MS Excel Object Library” ตาม“วิธีเพิ่ม Object Library การอ้างอิงใน VBA"
- หลังจากนั้นให้ใส่รหัส VBA ต่อไปนี้ลงในโครงการหรือโมดูล
Dim objDictionary As Object
Sub CountSentMailsByMonth()
Dim objOutlookFile As Outlook.Folder
Dim objFolder As Outlook.Folder
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet
Dim varMonths As Variant
Dim varItemCounts As Variant
Dim nLastRow As Integer
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objInbox = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
'Get the default Outlook data file
Set objOutlookFile = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Parent
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olMailItem Then
Call ProcessFolders(objFolder)
End If
Next
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
With objExcelWorksheet
.Cells(1, 1) = "Month"
.Cells(1, 2) = "Count"
End With
varMonths = objDictionary.Keys
varItemCounts = objDictionary.Items
For i = LBound(varMonths) To UBound(varMonths)
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Cells(nLastRow, 1) = varMonths(i)
.Cells(nLastRow, 2) = varItemCounts(i)
End With
Next
objExcelWorksheet.Columns("A:B").AutoFit
End Sub
Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
Dim i As Long
Dim objMail As Outlook.MailItem
Dim strMonth As String
For i = objCurFolder.Items.Count To 1 Step -1
If objCurFolder.Items(i).Class = olMail Then
Set objMail = objCurFolder.Items(i)
'Change to your own email address
If objMail.SenderEmailAddress = "you@datanumen.com" Then
strMonth = Format(Year(objMail.SentOn) & "-" & Month(objMail.SentOn), "YYYY/MM")
If objDictionary.Exists(strMonth) Then
objDictionary(strMonth) = objDictionary(strMonth) + 1
Else
objDictionary.Add strMonth, 1
End If
End If
End If
Next
End Sub
- จากนั้นย้ายเคอร์เซอร์ไปที่รูทีนย่อยแรก
- จากนั้นกด“ F5” เพื่อเรียกใช้มาโครนี้
- ในครั้งเดียวไฟล์ Excel จะปรากฏขึ้นซึ่งมีจำนวนอีเมลที่ส่งในทุกๆเดือนดังแสดงในรูปด้านล่าง
อย่าตื่นตระหนกเมื่อเผชิญกับความเสียหายของ Outlook
คุณอาจกังวลเมื่อพบความเสียหาย PST แต่ในความเป็นจริงคุณควรสงบสติอารมณ์ให้เร็วที่สุด อย่างที่เราทราบกันดีว่าความตื่นตระหนกนั้นทำอะไรไม่ถูกและยังนำไปสู่ปัญหาที่วุ่นวายและร้ายแรงยิ่งขึ้น คุณควรใจเย็น ๆ เพื่อพิจารณามาตรการต่างๆเช่นพิจารณาว่าคุณได้อัปเดตข้อมูลสำรองหรือไม่และพิจารณาวิธีการ ซ่อม PST - ไม่ว่าจะใช้เครื่องมือของบุคคลที่สามเช่น DataNumen Outlook Repair หรือติดต่อผู้เชี่ยวชาญที่เกี่ยวข้อง
บทนำผู้เขียน:
Shirley Zhang เป็นผู้เชี่ยวชาญด้านการกู้คืนข้อมูลใน DataNumen, Inc. ซึ่งเป็นผู้นำระดับโลกด้านเทคโนโลยีการกู้คืนข้อมูล ได้แก่ ซ่อม mdf และผลิตภัณฑ์ซอฟต์แวร์ซ่อมแซมแนวโน้ม ดูข้อมูลเพิ่มเติมได้ที่ wwwdatanumenด้วย.

