Como contar rapidamente todas as tarefas por status no Outlook

Compartilhe agora:

As tarefas podem ter cinco status – “Não Started”, “Em andamento”, “Concluído”, “Esperando por outra pessoa” e “Adiado”. Se você deseja contar rapidamente todas as tarefas por status, pode usar o método apresentado neste artigo.

O Outlook oferece suporte aos usuários para atribuir status às tarefas ou itens sinalizados. Existem cinco status - respectivamente "Não Started”, “Em andamento”, “Concluído”, “Esperando por outra pessoa” e “Adiado”. Talvez você tenha uma grande quantidade de tarefas em seu Outlook e elas estejam em status diferentes. Agora, se você deseja contar todas as tarefas por status, pode usar a seguinte maneira.Status da tarefa

Conte rapidamente todas as tarefas por status

  1. Primeiro, inicie o editor VBA do Outlook referindo-se a “Como executar o código VBA no seu Outlook".
  2. Em seguida, no editor VBA, habilite a referência a “MS Excel Object Library” bem como “MS Scripting Runtime” de acordo com “Como adicionar uma biblioteca de objetosrary Referência em VBA".
  3. Em seguida, copie o código a seguir em um módulo não utilizado.
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

Código VBA - Contar Tarefas por Status

  1. Depois disso, clique na primeira sub-rotina e pressione a tecla “F5”.
  2. Ao mesmo tempo, quando a macro for concluída, uma nova planilha do Excel será exibida, como na captura de tela abaixo. Ele contém as contagens de tarefas em diferentes status.Contagens de Tarefas em Status Diferentes

Cuidado com as armadilhas do Outlook

Há uma grande quantidade de riscos em torno do Outlook, incluindo vírus, erros humanos, falhas de software, bem como falhas de hardware, etc. Portanto, se não quiser perder seus valiosos dados do Outlook, você deve manter-se cauteloso o tempo todo. Simplificando, você nunca deve baixar anexos desconhecidos ou links suspeitos nos e-mails. Além disso, se possível, é aconselhável manter um notável utilitário de correção do Outlook, como DataNumen Outlook Repair, nas proximidades, em vez de confiar totalmente no ferramenta de reparo da caixa de entrada.

Introdução do autor:

Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperar sql e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.