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.
Conte rapidamente todas as tarefas por status
- Primeiro, inicie o editor VBA do Outlook referindo-se a “Como executar o código VBA no seu Outlook".
- 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".
- 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
- Depois disso, clique na primeira sub-rotina e pressione a tecla “F5”.
- 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.
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

