Naloge imajo lahko pet statusov – »Ni začeto«, »V teku«, »Dokončano«, »Čakanje na nekoga drugega« in »Odloženo«. Če želite hitro prešteti vse naloge po statusu, lahko uporabite način, predstavljen v tem članku.
Outlook uporabnikom omogoča dodelitev statusa opravilom ali označenim elementom. Obstaja pet statusov – »Ni začeto«, »V teku«, »Dokončano«, »Čakanje na nekoga drugega« in »Odloženo«. Morda imate v Outlooku veliko opravil, ki so v različnih stanjih. Če želite prešteti vsa opravila po stanju, lahko uporabite naslednji način.
Hitro preštejte vse naloge po stanju
- Najprej zaženite urejevalnik Outlook VBA tako, da se sklicujete na »Kako zagnati kodo VBA v Outlooku".
- Nato v urejevalniku VBA omogočite sklicevanje na »Knjižnico objektov MS Excel« in »Izvajanje skriptov MS« v skladu z »Kako dodati referenco knjižnice objektov v VBA".
- Nato kopirajte naslednjo kodo v neuporabljeni 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
- Po tem kliknite prvi podprogram in pritisnite tipko "F5".
- Takoj, ko se makro zaključi, se prikaže nov Excelov delovni list, kot je spodnji posnetek zaslona. Vsebuje štetje opravil v različnih statusih.
Pazite se pasti okoli Outlooka
Outlook je obkrožen s številnimi tveganji, vključno z virusi, človeškimi napakami, napakami programske opreme in strojne opreme itd. Če torej ne želite izgubiti dragocenih Outlookovih podatkov, morate biti ves čas previdni. Preprosto povedano, nikoli ne prenašajte neznanih prilog ali sumljivih povezav v e-poštnih sporočilih. Poleg tega, če je mogoče, je priporočljivo obdržati izjemen pripomoček za popravilo Outlooka, kot je DataNumen Outlook Repair, v bližini, namesto da bi se popolnoma zanašali na orodje za popravilo nabiralnika.
Uvod avtorja:
Shirley Zhang je strokovnjakinja za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z obnoviti sql in obeti za popravilo programskih izdelkov. Za več informacij obiščite www.datanumen.com

