Görevlerin beş durumu olabilir: "Başlamadı", "Devam Ediyor", "Tamamlandı", "Başkasını Bekliyor" ve "Ertelendi". Tüm görevleri durumlarına göre hızlıca saymak istiyorsanız, bu makalede tanıtılan yöntemi kullanabilirsiniz.
Outlook, kullanıcılara görevlere veya işaretlenmiş öğelere durum atama olanağı sunar. Beş durum vardır: sırasıyla "Başlamadı", "Devam Ediyor", "Tamamlandı", "Başkasını Bekliyor" ve "Ertelendi". Belki de Outlook'unuzda çok sayıda göreviniz var ve bunlar farklı durumlarda bulunuyor. Şimdi, tüm görevleri durumlarına göre saymak isterseniz, aşağıdaki yöntemi kullanabilirsiniz.
Tüm Görevleri Duruma Göre Hızla Say
- İlk önce, "'e başvurarak Outlook VBA düzenleyicisini başlatın.Outlook'unuzda VBA Kodunu Nasıl Çalıştırırsınız?".
- Ardından, VBA düzenleyicisinde, "MS Excel Nesne Kitaplığı" ve "MS Betik Çalışma Zamanı" referanslarını aşağıdaki talimatlara göre etkinleştirin:VBA'da Nesne Kütüphanesi Referansı Nasıl Eklenir?".
- Ardından, aşağıdaki kodu kullanılmayan bir modüle kopyalayın.
Dim objDictionary As New Scripting.Dictionary
Sub CountTasksByStatus()
Dim objStore As Outlook.Store
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 varStatuses As Variant
Dim varTaskCounts As Variant
Dim i As Integer
Dim nLastRow As Integer
'Count by Dictionary
Set objDictionary = CreateObject("Scripting.Dictionary")
'Process All Outlook data files
For Each objStore In Application.Session.Stores
Set objOutlookFile = objStore.GetRootFolder
For Each objFolder In objOutlookFile.Folders
If objFolder.DefaultItemType = olTaskItem Then
Call ProcessTaskFolders(objFolder)
End If
Next
Next
'Export the counts to an Excel worksheet
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
Set objExcelWorkbook = objExcelApp.Workbooks.Add
Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
With objExcelWorksheet
.Cells(1, 1) = "Status"
.Cells(1, 1).Font.Bold = True
.Cells(1, 2) = "Task Count"
.Cells(1, 2).Font.Bold = True
End With
varStatuses = objDictionary.Keys
varTaskCounts = objDictionary.Items
For i = LBound(varStatuses) To UBound(varStatuses)
nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
With objExcelWorksheet
.Cells(nLastRow, 1) = varStatuses(i)
.Cells(nLastRow, 2) = varTaskCounts(i)
End With
Next
objExcelWorksheet.Columns("A:B").AutoFit
End Sub
Sub ProcessTaskFolders(ByVal objCurFolder As Outlook.Folder)
Dim objTask As Outlook.TaskItem
Dim strStatus As String
Dim objSubfolder As Outlook.Folder
'Count tasks by status
For Each objTask In objCurFolder.Items
Select Case objTask.Status
Case olTaskNotStarted
strStatus = "Not Started"
If objDictionary.Exists(strStatus) Then
objDictionary(strStatus) = objDictionary(strStatus) + 1
Else
objDictionary.Add strStatus, 1
End If
Case olTaskInProgress
strStatus = "In Progress"
If objDictionary.Exists(strStatus) Then
objDictionary(strStatus) = objDictionary(strStatus) + 1
Else
objDictionary.Add strStatus, 1
End If
Case olTaskComplete
strStatus = "Completed"
If objDictionary.Exists(strStatus) Then
objDictionary(strStatus) = objDictionary(strStatus) + 1
Else
objDictionary.Add strStatus, 1
End If
Case olTaskWaiting
strStatus = "Waiting on someone else"
If objDictionary.Exists(strStatus) Then
objDictionary(strStatus) = objDictionary(strStatus) + 1
Else
objDictionary.Add strStatus, 1
End If
Case olTaskDeferred
strStatus = "Deferred"
If objDictionary.Exists(strStatus) Then
objDictionary(strStatus) = objDictionary(strStatus) + 1
Else
objDictionary.Add strStatus, 1
End If
End Select
Next
'Process all subfolders recursively
If objCurFolder.Folders.Count > 0 Then
For Each objSubfolder In objCurFolder.Folders
Call ProcessTaskFolders(objSubfolder)
Next
End If
End Sub
- Bundan sonra, ilk alt programa tıklayın ve “F5” tuşuna basın.
- Hemen, makro tamamlandığında, aşağıdaki ekran görüntüsü gibi yeni bir Excel çalışma sayfası görüntülenecektir. Farklı durumlardaki görevlerin sayısını içerir.
Outlook Çevresindeki Tuzaklara Dikkat Edin
Outlook'u çevreleyen virüsler, insan hataları, yazılım hataları ve donanım arızaları gibi çok sayıda risk vardır. Bu nedenle, değerli Outlook verilerinizi kaybetmek istemiyorsanız, her zaman dikkatli olmalısınız. Basitçe söylemek gerekirse, e-postalardaki bilinmeyen ekleri veya şüpheli bağlantıları asla indirmemelisiniz. Ayrıca, mümkünse, dikkat çekici bir Outlook düzeltme yardımcı programı bulundurmanız önerilir. DataNumen Outlook Repair, çevrede, tamamen güvenmek yerine gelen kutusu onarım aracı.
Yazar Tanıtımı:
Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. sql'yi kurtar ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com


