J'ai écrit une macro qui itère dans un calendrier utilisateur et apporte des modifications aux entrées qui satisfont certains critères.Itérer rapidement via les éléments de rendez-vous Outlook
Le problème est que lorsque le calendrier est très grand, cela prend beaucoup de temps. Je ne semble pas pouvoir filtrer les rendez-vous parce que oAppointmentItems
semble stocker les entrées telles qu'elles ont été créées - ce qui n'est pas nécessairement le même ordre que lorsqu'elles commencent.
Le code J'utilise est ceci:
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
court d'enlever la DoEvents
(ce qui signifie que Outlook semble se bloquer à l'utilisateur) est-il possible que je peux accélérer ce en appliquant une sorte de filtre? Par exemple, les rendez-vous qui commencent dans le futur.
C'était exactement ce que je recherchais aujourd'hui! Cela m'a sauvé tant de problèmes. Une chose que je remarque cependant est que je ne peux pas l'obtenir pour travailler avec un filtre de date en utilisant =, et il est difficile d'obtenir une date exacte (cela dépend si c'est une date ou une date/heure dans Outlook). Comme> Date - 1 jour et Date et Date
Jeff
Utilisation de la liaison anticipée dans VBA, comment les olRecItems devraient être DIM'd? (Perspective.???). Merci .. –
@iDevlop comme Outlook.MAPIFolder AFAIK. – Fionnuala