Cómo modificar las propiedades (zona horaria) de las citas periódicas en Outlook 2010 VBA

Estoy escribiendo una versión nueva y revisada de una macro de Outlook VBA que pasará por todas las citas en el calendario de un usuario y cambiará la zona horaria de cada serie recurrente a Central Standard. No importa lo que haga, sin embargo, parece que no puedo lograr que acceda a la repetición correctamente. En la actualidad, cuando depuro la macro, fallará la primera vez que se realice una llamada a ex.AppointmentItem.Subject (en la instrucción Debug.Print después de definir el patrón de periodicidad rPattern). La pregunta central aquí es: ¿cómo puedo acceder y modificar una serie completa de citas recurrentes a la vez? ¿Puedo a) modificar la cita maestra, b) iterar a través de todas las citas en la serie (que puede que no establezca todas las ocurrencias futuras según lo necesite), o c) iterar a través de la recopilación de excepciones y modificar la repetición desde allí? Me han dicho que la iteración a través de la colección de excepciones (aunque es engañosa en el nombre) es la única forma de modificar la repetición. ¿Es esto correcto?

¡Aprecio profundamente cualquier ayuda que pueda proporcionar, gracias!

Nota: aItem <> Null se comentó como una prueba, por alguna razón, la comprobación de un elemento Null (incluso la palabra clave Nothing intentada) siempre provocaba un error.

    Public Sub IterateAll()

   Dim olApp As New Outlook.Application
   Dim aObject As Object
   Dim calCollection As Outlook.Items
   Dim tzs As Outlook.TimeZones
   Dim tzCentral As Outlook.TimeZone
   Dim tzUTC As Outlook.TimeZone
   Dim olNameSpace As Outlook.NameSpace
   Dim rPattern As Outlook.RecurrencePattern
   Dim ex As Outlook.Exception


   Dim s As Outlook.TimeZone
   Dim e As Outlook.TimeZone


   Set olNameSpace = olApp.GetNamespace("MAPI")
   Set calCollection = olNameSpace.GetDefaultFolder(olFolderCalendar).Items
   Set tzs = Application.TimeZones
   Set tzCentral = tzs("Central Standard Time")
   Set tzUTC = tzs("UTC")

   For Each aObject In calCollection

       If aObject.IsRecurring Then
           Set rPattern = aObject.GetRecurrencePattern


           Debug.Print ("Subject: " + aObject.Subject)
           Debug.Print ("Old Time Zone is " & aObject.StartTimeZone)
           aObject.StartTimeZone = tzCentral
           aObject.EndTimeZone = tzCentral
               Debug.Print ("New Time Zone is " & aObject.StartTimeZone)

           aObject.Save

        End If
       Next

    End Sub

Respuestas a la pregunta(1)

Su respuesta a la pregunta