Jak szybko policzyć wszystkie zadania według statusu w Outlooku

Podziel się teraz:

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.Stan zadania

Szybko policz wszystkie zadania według statusu

  1. Po pierwsze, uruchom edytor VBA programu Outlook, odnosząc się do „Jak uruchomić kod VBA w swoim Outlooku".
  2. 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".
  3. 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

Kod VBA - zliczaj zadania według statusu

  1. Następnie kliknij pierwszy podprogram i naciśnij klawisz „F5”.
  2. 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.Liczba zadań w różnych stanach

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

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.