Opgaver kan have fem status - "Ikke Started ”,“ I gang ”,“ Afsluttet ”,“ Venter på en anden ”og“ Udskudt ”. Hvis du hurtigt vil tælle alle opgaver efter status, kan du bruge den måde, der er introduceret i denne artikel.
Outlook understøtter brugere til at tildele status til opgaverne eller markerede elementer. Der er fem status - henholdsvis “Ikke Started ”,“ I gang ”,“ Afsluttet ”,“ Venter på en anden ”og“ Udskudt ”. Måske har du en stor mængde opgaver i din Outlook, og de har forskellige status. Hvis du nu vil tælle alle opgaverne efter status, kan du bruge følgende måde.
Tæl hurtigt alle opgaver efter status
- Start først Outlook VBA-editor ved at henvise til “Sådan køres VBA-kode i din Outlook".
- Aktiver derefter henvisningen til “MS Excel Object Lib. I VBA-editorenrary ”samt” MS Scripting Runtime ”i henhold til“Sådan tilføjes et objekt Library Reference i VBA".
- Kopier derefter følgende kode til et ubrugt modul.
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 derefter på den første underrutine og tryk på “F5” -tasten.
- Når en makro er færdig, vises straks et nyt Excel-regneark, som skærmbilledet nedenfor. Den indeholder antallet af opgaver i forskellige statuser.
Pas på faldgruber omkring Outlook
Der er en stor mængde risici omkring Outlook, herunder vira, menneskelige fejl, softwarefejl samt hardwarefejl osv. Derfor, hvis du ikke vil miste dine værdifulde Outlook-data, skal du være forsigtig hele tiden. Kort sagt, du skal aldrig downloade ukendte vedhæftede filer eller mistænkelige links i e-mails. Desuden anbefales det, hvis det er muligt, at have et bemærkelsesværdigt Outlook-fixværktøj, som f.eks DataNumen Outlook Repair, i nærheden, i stedet for helt at stole på værktøj til reparation af indbakke.
Forfatter Introduktion:
Shirley Zhang er ekspert i datagendannelse i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder gendanne sql og Outlook-reparationssoftwareprodukter. For mere information besøg www.datanumen.com

