Taken kunnen vijf statussen hebben: 'Niet gestart', 'In uitvoering', 'Voltooid', 'Wachtend op iemand anders' en 'Uitgesteld'. Als u snel alle taken per status wilt tellen, kunt u de methode gebruiken die in dit artikel wordt beschreven.
Outlook biedt gebruikers de mogelijkheid om een status toe te wijzen aan taken of gemarkeerde items. Er zijn vijf statussen: 'Niet gestart', 'In uitvoering', 'Voltooid', 'Wachtend op iemand anders' en 'Uitgesteld'. Stel dat u veel taken in Outlook hebt met verschillende statussen. Als u nu alle taken per status wilt tellen, kunt u de volgende methode gebruiken.
Tel snel alle taken op status
- Start eerst de Outlook VBA-editor door te verwijzen naar "Hoe u VBA-code in uw Outlook uitvoert'.
- Schakel vervolgens in de VBA-editor de verwijzing naar "MS Excel Object Library" en "MS Scripting Runtime" in, zoals beschreven in de instructies.Hoe voeg je een verwijzing naar een objectbibliotheek toe in VBA?'.
- Kopieer vervolgens de volgende code naar een ongebruikte module.
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
- Klik daarna op de eerste subroutine en druk op de "F5" -toets.
- Zodra de macro is voltooid, wordt een nieuw Excel-werkblad weergegeven, zoals de onderstaande schermafbeelding. Het bevat het aantal taken in verschillende statussen.
Pas op voor valkuilen rondom Outlook
Er zijn een groot aantal risico's rondom Outlook, waaronder virussen, menselijke fouten, softwarefouten en hardwarefouten, enz. Daarom moet u altijd voorzichtig zijn als u uw waardevolle Outlook-gegevens niet wilt verliezen. Simpel gezegd, u mag nooit onbekende bijlagen of verdachte links in de e-mails downloaden. Bovendien is het raadzaam om, indien mogelijk, een opmerkelijk Outlook-fixprogramma te behouden, zoals DataNumen Outlook Repair, in de buurt, in plaats van volledig te vertrouwen op de inbox reparatieprogramma.
Auteur Introductie:
Shirley Zhang is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder herstel sql en Outlook-reparatiesoftwareproducten. Voor meer informatie bezoek www.datanumen.com


