Gönderilen e-postaları birkaç klasörde saklıyorsanız ve şimdi tüm bu gönderilen postaları aylara göre saymak istiyorsanız, bu makaleyi okuyabilirsiniz. Burada onu elde etmenin oldukça hızlı bir yolunu tanıtacağız.
Bir önceki yazı – “Outlook VBA ile Gelen E-postaları Tarih, Ay veya Yıla Göre Hızlı Bir Şekilde Sayma”, e-postaları aya göre saymanın bir yolunu paylaştı. Ancak, e-postaları bir klasörde işleyebilir. Birkaç hatta tüm posta klasörlerindeki e-postaları saymak istiyorsanız, diğer yöntemleri kullanmalısınız. Bu nedenle, aşağıda size çok daha hızlı başka bir yol göstereceğiz.
Aylara Göre Gönderilen E-postaları Say
- Başlamak için, "Alt + F11" aracılığıyla Outlook VBA düzenleyicisine erişin.
- Ardından, "MS Excel Object Lib" referansını etkinleştirin.rary” göre “Nesne Kitaplığı Nasıl Eklenir?rary VBA'da Referans".
- Bundan sonra, aşağıdaki VBA kodunu bir projeye veya modüle yerleştirin.
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
- Ardından, imleci ilk alt programa getirin.
- Ardından, bu makroyu tetiklemek için “F5” tuşuna basın.
- Hemen, aşağıdaki şekilde gösterildiği gibi, her ay gönderilen e-postaların sayısını içeren bir Excel dosyası görünecektir.
Outlook Bozulması Karşısında Panik Yapmayın
PST hasarıyla karşılaştığınızda endişelenme eğiliminde olabilirsiniz. Yine de, gerçekte, mümkün olan en kısa sürede sakinleşseniz iyi olur. Hepimizin bildiği gibi panik çaresizdir ve hatta daha kaotik ve ciddi sorunlara yol açar. Yedeklemeyi güncelleyip güncellemediğinizi düşünmek ve nasıl yapacağınızı düşünmek gibi önlemleri dikkate almak için sakin olmalısınız. PST'yi onar – gibi üçüncü taraf araçlara başvurup başvurmamak DataNumen Outlook Repair veya ilgili profesyonellerle iletişime geçin.
Yazar Tanıtımı:
Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. onarım mdf ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com

