Uzdevumiem var būt pieci statusi — “Nav sākts”, “Procesā”, “Pabeigts”, “Gaida kādu citu” un “Atlikts”. Ja vēlaties ātri saskaitīt visus uzdevumus pēc statusa, varat izmantot šajā rakstā aprakstīto metodi.
Outlook atbalsta lietotājus, lai viņi varētu piešķirt statusu uzdevumiem vai atzīmētajiem vienumiem. Ir pieci statusi — attiecīgi “Nav sākts”, “Procesā”, “Pabeigts”, “Gaida kādu citu” un “Atlikts”. Iespējams, jūsu Outlook ir daudz uzdevumu, un tie ir dažādos statusos. Tagad, ja vēlaties saskaitīt visus uzdevumus pēc statusa, varat izmantot šo metodi.
Ātri saskaitiet visus uzdevumus pēc statusa
- Vispirms palaidiet Outlook VBA redaktoru, atsaucoties uzKā palaist VBA kodu programmā Outlook".
- Pēc tam VBA redaktorā iespējojiet atsauci uz “MS Excel objektu bibliotēku”, kā arī “MS Scripting Runtime” saskaņā ar “Kā pievienot objektu bibliotēkas atsauci VBA valodā".
- Pēc tam nokopējiet šo kodu neizmantotā 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
- Pēc tam noklikšķiniet uz pirmās apakšprogrammas un nospiediet taustiņu “F5”.
- Pēc makro pabeigšanas uzreiz tiks parādīta jauna Excel darblapa, piemēram, zemāk redzamais ekrānuzņēmums. Tajā ir uzskaitīti dažādu statusu uzdevumi.
Sargieties no kļūmēm ap Outlook
Ap Outlook ir ļoti daudz risku, tostarp vīrusi, cilvēku kļūdas, programmatūras kļūdas, kā arī aparatūras kļūmes utt. Tāpēc, ja nevēlaties zaudēt vērtīgos Outlook datus, jums visu laiku jāievēro piesardzība. Vienkārši sakot, e-pastos nekad nevajadzētu lejupielādēt nezināmus pielikumus vai aizdomīgas saites. Turklāt, ja iespējams, ieteicams saglabāt ievērojamu Outlook labošanas utilītu, piemēram, DataNumen Outlook Repair, nevis pilnībā paļauties uz iesūtnes labošanas rīks.
Autora ievads:
Šērlija Džana ir datu atkopšanas eksperte DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp atgūt kv un perspektīvas remonta programmatūras produktus. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar


