Questo articolo ti insegnerà un metodo semplice per stampare l'elenco di tutti gli appuntamenti mostrati come "Occupato" e programmati in un intervallo di date specifico.
È abbastanza semplice scorrere tutti i calendari per trovare tutti gli appuntamenti occupati in un intervallo di date specifico. Basta impostare l'ambito di ricerca su "Tutti gli elementi del calendario". Quindi, cerca gli appuntamenti con "Mostra ora come" uguale a "Occupato" e compresi nella data di inizio e di fine specificate. Tuttavia, in questo modo, quando si intende stampare gli appuntamenti trovati e si va su "File" > "Stampa", si noterà che è disponibile solo lo "Stile Memo". Ciò significa che non è possibile stampare gli appuntamenti trovati in formato elenco. Quindi, se si desidera stampare l'elenco di tali appuntamenti, è possibile utilizzare il metodo seguente.

Stampa l'elenco di tutti gli appuntamenti occupati in un intervallo di date specifico
- All'inizio, avvia l'editor VBA di Outlook tramite "Alt + F11".
- Quindi, nella finestra popup “Microsoft Visual Basic for Applications”, aggiungere il riferimento a “MS Excel Object Library” secondo “Come aggiungere un riferimento a una libreria di oggetti in VBA".
- Successivamente, inserisci il seguente codice VBA in un modulo.
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
- Successivamente, fai clic sulla prima subroutine e premi il tasto "F5".
- Successivamente, ti verrà richiesto di specificare l'intervallo di date per la ricerca degli appuntamenti.
- Successivamente, fare clic su "OK" per continuare la macro.
- Infine, al termine della macro, verrà stampato l'elenco degli appuntamenti occupati nell'intervallo di date predefinito in tutte le cartelle del calendario, come mostrato nello screenshot seguente.
Affrontare la corruzione inquietante di Outlook
Se il tuo Outlook è sempre chiuso in modo improprio, potresti riscontrare molti problemi in seguito. Tra questi, il file di Outlook danneggiato è il peggiore. Se non vuoi perdere i tuoi dati, devi utilizzare uno strumento di correzione PST, come DataNumen Outlook Repair. È in grado di recuperare il massimo dei dati da Outlook danneggiato file.
Introduzione dell'autore:
Shirley Zhang è un'esperta di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui correzione sql e prodotti software di riparazione di Outlook. Per maggiori informazioni visita www.datanumen.com


