Как изменить свойства (часовой пояс) повторяющихся встреч в Outlook 2010 VBA

Я пишу новую и пересмотренную версию макроса VBA Outlook, которая будет проходить через все встречи в календаре пользователя и изменять каждую повторяющуюся серию ». часовой пояс к центральному стандарту. Однако независимо от того, что я делаю, я не могу заставить его правильно обращаться к повторению. В настоящее время, когда я отлаживаю макрос, он потерпит неудачу при первом вызове ex.AppointmentItem.Subject (в операторе Debug.Print после определения шаблона повторения rPattern). Главный вопрос здесь: как я могу получить доступ и изменить всю серию повторяющихся встреч одновременно? Могу ли я а) изменить основную встречу, б) перебрать все встречи в серии (что может не устанавливать все будущие вхождения, как мне нужно), или в) перебрать коллекцию исключений и изменить повторение оттуда? Мне сказали, что перебор коллекции исключений (хотя вводит в заблуждение по имени) - единственный способ изменить повторение. Это правильно?

Я высоко ценю любую помощь, которую вы можете оказать, спасибо!

Примечание. Элемент aItem & lt; & gt; Null был закомментирован как тест, по какой-то причине проверка элемента Null (даже использованного ключевого слова Nothing) всегда вызывала ошибку.

    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

Ответы на вопрос(1)

Ваш ответ на вопрос