Le attività possono avere cinque stati: "Non avviata", "In corso", "Completata", "In attesa di essere assegnata" e "Rinviata". Se si desidera contare rapidamente tutte le attività in base allo stato, è possibile utilizzare il metodo descritto in questo articolo.
Outlook consente agli utenti di assegnare uno stato alle attività o agli elementi contrassegnati. Sono disponibili cinque stati: "Non avviato", "In corso", "Completato", "In attesa di essere completato" e "Rinviato". Potresti avere molte attività in Outlook con stati diversi. Se desideri contare tutte le attività in base allo stato, puoi utilizzare il seguente metodo.
Conta rapidamente tutte le attività in base allo stato
- Prima di tutto, avvia l'editor VBA di Outlook facendo riferimento a "Come eseguire il codice VBA in Outlook".
- Quindi, nell'editor VBA, abilitare il riferimento a "Libreria oggetti MS Excel" e a "Runtime di scripting MS" secondo "Come aggiungere un riferimento a una libreria di oggetti in VBA".
- Successivamente, copia il codice seguente in un modulo inutilizzato.
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
- Successivamente, fai clic sulla prima subroutine e premi il tasto "F5".
- Immediatamente, al termine della macro, verrà visualizzato un nuovo foglio di lavoro di Excel, come lo screenshot qui sotto. Contiene i conteggi delle attività in diversi stati.
Attenzione alle insidie di Outlook
Ci sono una grande quantità di rischi che circondano Outlook, inclusi virus, errori umani, guasti del software e guasti hardware, ecc. Pertanto, se non vuoi perdere i tuoi preziosi dati di Outlook, devi stare sempre attento. In poche parole, non dovresti mai scaricare allegati sconosciuti o collegamenti sospetti nelle e-mail. Inoltre, se possibile, è consigliabile mantenere una notevole utilità di correzione di Outlook, come DataNumen Outlook Repair, nelle vicinanze, invece di affidarsi totalmente al strumento di riparazione della posta in arrivo.
Introduzione dell'autore:
Shirley Zhang è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui recuperare sql e prodotti software di riparazione di Outlook. Per maggiori informazioni visita www.datanumen.com

