Tehtävillä voi olla viisi tilaa – ”Ei aloitettu”, ”Keskellä”, ”Valmis”, ”Odottaa jotakuta muuta” ja ”Lykätty”. Jos haluat laskea kaikki tehtävät nopeasti tilan mukaan, voit käyttää tässä artikkelissa esiteltyä tapaa.
Outlook tukee käyttäjiä määrittämään tehtäville tai merkityille kohteille tilan. Tilavaihtoehtoja on viisi: ”Ei aloitettu”, ”Keskellä”, ”Valmis”, ”Odottaa jotakuta muuta” ja ”Lykätty”. Ehkä sinulla on Outlookissasi paljon tehtäviä ja ne ovat eri tiloissa. Jos nyt haluat laskea kaikki tehtävät tilan mukaan, voit käyttää seuraavaa tapaa.
Laske kaikki tehtävät nopeasti tilan mukaan
- Käynnistä ensin Outlook VBA -editori viittaamallaKuinka suorittaa VBA-koodi Outlookissa".
- Ota sitten VBA-editorissa käyttöön viittaus "MS Excel Object Libraryyn" sekä "MS Scripting Runtimeen" kohdan "Objektikirjastoviittauksen lisääminen VBA:ssa".
- Kopioi seuraavaksi seuraava koodi käyttämättömään moduuliin.
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
- Napsauta sen jälkeen ensimmäistä alirutiinia ja paina “F5” -näppäintä.
- Kun makro on valmis, näkyviin tulee uusi Excel-laskentataulukko, kuten alla oleva kuvakaappaus. Se sisältää tehtävien määrän eri tiloissa.
Varo Outlookin ympärillä olevia sudenkuoppia
Outlookiin liittyy suuri määrä riskejä, kuten virukset, inhimilliset virheet, ohjelmistoviat ja laitteistoviat jne. Siksi, jos et halua menettää arvokkaita Outlook-tietojasi, sinun on pidettävä koko ajan varovaisena. Yksinkertaisesti sanottuna sinun ei pitäisi koskaan ladata tuntemattomia liitteitä tai epäilyttäviä linkkejä sähköposteihin. Lisäksi, jos mahdollista, on suositeltavaa pitää yllä merkittävä Outlook-korjausapuohjelma, kuten DataNumen Outlook Repair, läheisyydessä sen sijaan, että luottaisivat täysin Saapuneet-kansion korjaustyökalu.
Tekijän esittely:
Shirley Zhang on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien palauttaa sql ja Outlookin korjausohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com


