Zadania mogą mieć pięć statusów – „Nierozpoczęte”, „W toku”, „Ukończone”, „Oczekujące na kogoś innego” i „Odłożone”. Aby szybko policzyć wszystkie zadania według statusu, możesz skorzystać ze sposobu opisanego w tym artykule.
Outlook umożliwia użytkownikom przypisywanie statusu zadaniom lub oznaczonym elementom. Dostępnych jest pięć statusów – odpowiednio „Nierozpoczęte”, „W toku”, „Ukończone”, „Oczekujące na kogoś innego” i „Odłożone”. Być może masz dużą liczbę zadań w Outlooku i mają one różne statusy. Jeśli chcesz policzyć wszystkie zadania według statusu, możesz skorzystać z poniższej metody.
Szybko policz wszystkie zadania według statusu
- Po pierwsze, uruchom edytor VBA programu Outlook, odnosząc się do „Jak uruchomić kod VBA w swoim Outlooku".
- Następnie w edytorze VBA należy włączyć odwołanie do „Biblioteki obiektów MS Excel” oraz „Środowiska wykonawczego MS Scripting” zgodnie z „Jak dodać odwołanie do biblioteki obiektów w języku VBA".
- Następnie skopiuj następujący kod do nieużywanego modułu.
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
- Następnie kliknij pierwszy podprogram i naciśnij klawisz „F5”.
- Od razu po zakończeniu działania makra zostanie wyświetlony nowy arkusz programu Excel, jak na poniższym zrzucie ekranu. Zawiera liczbę zadań w różnych statusach.
Uważaj na pułapki związane z programem Outlook
Istnieje wiele zagrożeń związanych z programem Outlook, w tym wirusami, błędami ludzkimi, awariami oprogramowania, awariami sprzętu itp. Dlatego, jeśli nie chcesz stracić cennych danych programu Outlook, musisz cały czas zachować ostrożność. Mówiąc najprościej, nigdy nie powinieneś pobierać nieznanych załączników lub podejrzanych linków w wiadomościach e-mail. Poza tym, jeśli to możliwe, zaleca się zachowanie niezwykłego narzędzia do naprawy programu Outlook, takiego jak DataNumen Outlook Repair, w pobliżu, zamiast całkowicie polegać na narzędzie do naprawy skrzynki odbiorczej.
Wprowadzenie autora:
Shirley Zhang jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym odzyskać sql i oprogramowanie do naprawy programu Outlook. po więcej informacji odwiedź www.datanumen.com

