Outlook'unuzdaki Duruma Göre Tüm Görevleri Hızlıca Nasıl Sayarsınız?

Şimdi paylaş:

Görevlerin beş durumu olabilir: "Başlamadı", "Devam Ediyor", "Tamamlandı", "Başkasını Bekliyor" ve "Ertelendi". Tüm görevleri durumlarına göre hızlıca saymak istiyorsanız, bu makalede tanıtılan yöntemi kullanabilirsiniz.

Outlook, kullanıcılara görevlere veya işaretlenmiş öğelere durum atama olanağı sunar. Beş durum vardır: sırasıyla "Başlamadı", "Devam Ediyor", "Tamamlandı", "Başkasını Bekliyor" ve "Ertelendi". Belki de Outlook'unuzda çok sayıda göreviniz var ve bunlar farklı durumlarda bulunuyor. Şimdi, tüm görevleri durumlarına göre saymak isterseniz, aşağıdaki yöntemi kullanabilirsiniz.Görev Durumu

Tüm Görevleri Duruma Göre Hızla Say

  1. İlk önce, "'e başvurarak Outlook VBA düzenleyicisini başlatın.Outlook'unuzda VBA Kodunu Nasıl Çalıştırırsınız?".
  2. Ardından, VBA düzenleyicisinde, "MS Excel Nesne Kitaplığı" ve "MS Betik Çalışma Zamanı" referanslarını aşağıdaki talimatlara göre etkinleştirin:VBA'da Nesne Kütüphanesi Referansı Nasıl Eklenir?".
  3. Ardından, aşağıdaki kodu kullanılmayan bir modüle kopyalayın.
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

VBA Kodu - Görevleri Duruma Göre Say

  1. Bundan sonra, ilk alt programa tıklayın ve “F5” tuşuna basın.
  2. Hemen, makro tamamlandığında, aşağıdaki ekran görüntüsü gibi yeni bir Excel çalışma sayfası görüntülenecektir. Farklı durumlardaki görevlerin sayısını içerir.Farklı Durumlardaki Görev Sayısı

Outlook Çevresindeki Tuzaklara Dikkat Edin

Outlook'u çevreleyen virüsler, insan hataları, yazılım hataları ve donanım arızaları gibi çok sayıda risk vardır. Bu nedenle, değerli Outlook verilerinizi kaybetmek istemiyorsanız, her zaman dikkatli olmalısınız. Basitçe söylemek gerekirse, e-postalardaki bilinmeyen ekleri veya şüpheli bağlantıları asla indirmemelisiniz. Ayrıca, mümkünse, dikkat çekici bir Outlook düzeltme yardımcı programı bulundurmanız önerilir. DataNumen Outlook Repair, çevrede, tamamen güvenmek yerine gelen kutusu onarım aracı.

Yazar Tanıtımı:

Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. sql'yi kurtar ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com

Şimdi paylaş:

Yoruma kapalı.