Ho scritto una macro che scorre il calendario di un utente e apporta modifiche alle voci che filtrano un determinato criterio.Iterazione rapida degli elementi di appuntamento di Outlook
Il problema è che quando il calendario è molto grande, questo richiede molto tempo. Non riesco a filtrare gli appuntamenti perché oAppointmentItems
sembra memorizzare le voci così come sono state create, che non è necessariamente lo stesso ordine di quando iniziano.
Il codice che sto usando è questo:
Dim oOL As New Outlook.Application
Dim oNS As Outlook.NameSpace
Dim oAppointments As Object
Dim oAppointmentItem As Outlook.AppointmentItem
Set oNS = oOL.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
For Each oAppointmentItem In oAppointments.Items
DoEvents
' Something here
Next
Set oAppointmentItem = Nothing
Set oAppointments = Nothing
Set oNS = Nothing
Set oOL = Nothing
Breve di rimuovere la DoEvents
(il che significa solo che Outlook sembra bloccarsi per l'utente) c'è un modo per accelerare questo applicando qualche tipo di filtro? Ad esempio, appuntamenti che iniziano in futuro.
questo era esattamente quello che stavo cercando per oggi! Questo mi ha salvato così tanti problemi. Una cosa che noto è che non riesco a farlo funzionare con un filtro data usando =, ed è difficile ottenere una data esatta (sembra dipendere dal fatto che siano una data o una data/ora in Outlook). Come> Data - 1 giorno e Data e Data Jeff
Usando l'associazione anticipata in VBA, come dovrebbero essere DIM'd olRecItems? (Prospettiva.???). Grazie .. –
@iDevlop come Outlook.MAPIFolder AFAIK. – Fionnuala