Outlook VBA vasitəsilə müəyyən bir tarix diapazonunda bütün məşğul görüşlərin siyahısını necə çap etmək olar

İndi paylaş:

Bu məqalə sizə “Məşğul” kimi göstərilən və müəyyən bir tarix diapazonunda planlaşdırılan bütün görüşlərin siyahısını çap etməyin asan üsulunu öyrədəcək.

Müəyyən bir tarix aralığında bütün məşğul görüşləri tapmaq üçün bütün təqvimləri nəzərdən keçirmək olduqca asandır. Axtarış dairəsini sadəcə "Bütün Təqvim Elementləri" olaraq təyin edə bilərsiniz. Daha sonra, "Vaxtı Kimi Göstər" seçimini "Məşğul" olaraq təyin edin və müəyyən başlanğıc və bitmə tarixləri daxilində görüşlər axtarın. Lakin bu şəkildə, tapılan görüşləri çap etmək istəyərkən və "Fayl" > "Çap et" bölməsinə keçərkən yalnız "Yazı Stil" seçiminin mövcud olduğunu görə bilərsiniz. Bu o deməkdir ki, siyahıda tapılan görüşləri çap edə bilməzsiniz. Beləliklə, belə görüşlərin siyahısını çap etmək istəyirsinizsə, aşağıdakı üsuldan istifadə edə bilərsiniz.

Tapılan görüşlər üçün yalnız Memo Style mövcuddur

Müəyyən bir tarix diapazonunda bütün məşğul görüşlərin siyahısını çap edin

  1. Əvvəlcə “Alt + F11” vasitəsilə Outlook VBA redaktorunu işə salın.
  2. Daha sonra, açılan "Microsoft Visual Basic for Applications" pəncərəsində, "MS Excel Object Library"-yə istinadı ""-a uyğun olaraq əlavə edin.VBA-da Obyekt Kitabxanasına İstinad necə əlavə olunur".
  3. Bundan sonra, aşağıdakı VBA kodunu modula qoyun.
Dim dStart, dEnd As Date
Dim objExcelApp As Excel.Application
Dim objExcelWorkbook As Excel.Workbook
Dim objExcelWorksheet As Excel.Worksheet

Sub PrintListOfAllBusyAppointments()
    Dim objStore As Store
    Dim objFolder As Folder
 
    dStart = InputBox("Enter the start date:", , Date)
    dEnd = InputBox("Enter the end date:", , Date + 30)
 
    Set objExcelApp = CreateObject("Excel.Application")
    Set objExcelWorkbook = objExcelApp.Workbooks.Add
    Set objExcelWorksheet = objExcelWorkbook.Sheets(1)
    objExcelApp.Visible = True
 
    With objExcelWorksheet
         .Cells(1, 1) = "Subject"
         .Cells(1, 1).Font.Bold = True
         .Cells(1, 2) = "Location"
         .Cells(1, 2).Font.Bold = True
         .Cells(1, 3) = "Start"
         .Cells(1, 3).Font.Bold = True
         .Cells(1, 4) = "End"
         .Cells(1, 4).Font.Bold = True
         .Cells(1, 5) = "In Folder"
         .Cells(1, 5).Font.Bold = True
    End With
 
    For Each objStore In Application.Session.Stores
        For Each objFolder In objStore.GetRootFolder.Folders
            If objFolder.DefaultItemType = olAppointmentItem Then
               Call ProcessFolders(objFolder)
            End If
        Next
    Next
 
    objExcelWorksheet.Columns("A:E").AutoFit
    objExcelWorksheet.PrintOut
    objExcelWorkbook.Close False
    objExcelApp.Quit
End Sub

Sub ProcessFolders(ByVal objCurFolder As Folder)
    Dim strFilter As String
    Dim objItems As Outlook.Items
    Dim objRestrictedItems As Outlook.Items
    Dim objAppointment As AppointmentItem
    Dim nLastRow As Integer
    Dim objSubFolder As Folder
 
    Set objItems = objCurFolder.Items
    objItems.IncludeRecurrences = True
    objItems.Sort "[Start]"
 
    'Get the appointments in the specific date range
    strFilter = "[Start] >= " & Chr(34) & dStart & " 00:00 AM" & Chr(34) & " AND [End] <= " & Chr(34) & dEnd & " 11:59 PM" & Chr(34)
    Set objRestrictedItems = objItems.Restrict(strFilter)

    For Each objAppointment In objRestrictedItems
        If objAppointment.BusyStatus = olBusy Then
           nLastRow = objExcelWorksheet.Range("A" & objExcelWorksheet.Rows.Count).End(xlUp).Row + 1
 
           With objExcelWorksheet
                .Range("A" & nLastRow) = objAppointment.Subject
                .Range("B" & nLastRow) = objAppointment.Location
                .Range("C" & nLastRow) = objAppointment.Start
                .Range("D" & nLastRow) = objAppointment.End
                .Range("E" & nLastRow) = objCurFolder.FolderPath
           End With
        End If
    Next

    'Process all subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubFolder In objCurFolder.Folders
           Call ProcessFolders(objSubFolder)
       Next
    End If
End Sub

VBA Kodu - Müəyyən bir tarix diapazonunda bütün məşğul görüşlərin siyahısını çap edin

  1. Daha sonra, ilk alt proqrama klikləyin və "F5" düyməsini basın.
  2. Sonra, sizdən görüşlərin axtarışı üçün tarix diapazonunu göstərməyiniz tələb olunacaq.Tarix Aralığını təyin edin
  3. Sonra, makroya davam etmək üçün "OK" düyməsini basın.
  4. Nəhayət, makro tamamlandıqda, aşağıdakı ekran görüntüsündə göstərildiyi kimi, bütün təqvim qovluqlarında əvvəlcədən təyin edilmiş tarix diapazonunda məşğul olan görüşlərin siyahısı çap olunacaq.Xüsusi Tarix Aralığında Bütün Məşğul Randevuların Çap Siyahısı

Narahatedici Outlook Korrupsiyasını Mübarizə Edin

Outlook-unuz həmişə düzgün olmayan şəkildə bağlanırsa, daha sonra bir çox problemlə qarşılaşa bilərsiniz. Bunların arasında ən pisi Outlook faylının zədələnməsidir. Məlumatlarınızı itirmək istəmirsinizsə, PST düzəliş alətindən istifadə etməlisiniz, məsələn DataNumen Outlook Repair. Maksimum məlumatları geri ala bilir zədələnmiş Outlook file.

Müəllif Giriş:

Shirley Zhang məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc sql düzəliş və Outlook təmiri proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com

İndi paylaş:

Şərhlər bağlıdır.