Her bir Outlook klasöründeki öğelerin sayısı hakkında bir rapor almak istiyorsanız, bu makalede açıklanan yöntemi kullanabilirsiniz. Sayımı hızlı bir şekilde yapacak ve sonuçları bir Excel dosyasına aktaracaktır.
Bir önceki yazımda – “Bir Klasördeki ve Tüm Alt Klasörlerindeki Toplam Öğe Sayısını Outlook VBA Aracılığıyla Nasıl Hızlı Bir Şekilde Elde Edebilirsiniz?”, bir klasördeki öğelerin sayısını almak için VBA kullanarak bir yöntem öğrenebilirsiniz. Ancak bu durumda, tüm klasörlerdeki öğeleri saymak istiyorsanız, her klasörü seçip makroyu tek tek çalıştırmanız gerekir. Biraz sıkıcı. Bu nedenle, size sayımı bir Excel dosyasına aktaracak başka bir yöntem öğreteceğiz.
Her Outlook Klasöründeki Toplam Öğe Sayısını Excel'e Aktarın
- Başlangıçta, Outlook programınızı başlatın.
- Ardından, ana Outlook penceresindeki “Alt + F11” tuş düğmelerine basın.
- Daha sonra, kullanılmayan bir modülü açmanız gereken “Uygulamalar için Microsoft Visual Basic” penceresine gireceksiniz.
- Ardından, aşağıdaki VBA kodunu kopyalayıp bu modüle yapıştırın.
Public strExcelFile As String
Public objExcelApp As Excel.Application
Public objExcelWorkbook As Excel.Workbook
Public objExcelWorksheet As Excel.Worksheet
Sub Export_CountOfItems_InEachFolder_toExcel()
Dim objSourcePST As Outlook.Folder
Dim objFolder As Outlook.Folder
'Create a new Excel file
Set objExcelApp = CreateObject("Excel.Application")
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets("Sheet1")
objExcelWorksheet.Cells(1, 1) = "Folder"
objExcelWorksheet.Cells(1, 2) = "Count Items"
'Select a source PST file
Set objSourcePST = Outlook.Application.Session.PickFolder
For Each objFolder In objSourcePST.folders
Call ProcessFolders(objFolder)
Next
'Fit the columns from A to B
objExcelWorksheet.Columns("A:B").AutoFit
strExcelFile = "E:\Outlook\" & objSourcePST.Name & " Folder Items Count (" & Format(Now, "yyyy-mm-dd hh-mm-ss") & ").xlsx"
objExcelWorkbook.Close True, strExcelFile
MsgBox "Complete!", vbExclamation
End Sub
Sub ProcessFolders(ByVal objCurrentFolder As Outlook.Folder)
Dim objItem As Object
Dim lCurrentFolderItemCount As Long
Dim nLastRow As Integer
lCurrentFolderItemCount = objCurrentFolder.Items.Count
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
'Add the values into the columns
objExcelWorksheet.Range("A" & nLastRow) = objCurrentFolder.FolderPath
objExcelWorksheet.Range("B" & nLastRow) = lCurrentFolderItemCount
If objCurrentFolder.folders.Count > 0 Then
For Each objSubfolder In objCurrentFolder.folders
Call ProcessFolders(objSubfolder)
Next
End If
End Sub
- Bundan sonra, Outlook makro güvenlik düzeyinizi düşük olarak değiştirmeniz gerekir.
- Ardından yeni eklenen makroya geri dönebilir ve bu makroyu çalıştırmak için F5 tuşuna basabilirsiniz.
- Ardından, bir kaynak PST dosyası seçmeniz ve "Tamam" düğmesine basmanız gerekir.
- Makro tamamlandıktan sonra, aşağıdaki ekran görüntüsü gibi görünecek olan yeni Excel dosyasını bulmak için önceden tanımlanmış yerel klasöre gidebilirsiniz:
Rahatsız Edici PST Hatalarını Giderin
Belki de Outlook'u kullanırken çeşitli sorunlarla karşılaştınız. Küçük sorunlarla başa çıkmak için, basitçe başvurabilirsiniz gelen kutusu onarım aracı. Yine de, sorunlar yerleşik aracın yapabileceklerini aşacak kadar ciddiyse, daha güçlü bir araç kullanmalısınız. DataNumen Outlook Repair.
Yazar Tanıtımı:
Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. mdf onarımı ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com


