Как «сохранить» повторяющиеся исключения AppointmentItem при изменении .Parent? - PullRequest
0 голосов
/ 19 декабря 2018

Это мой первый пост!

Я регулярно получаю встречи, которые только для справки (не то, что я собираюсь).Они загромождают мой календарь, скрывая фактические встречи, в которых я должен участвовать.

Я написал некоторый код, чтобы изменить повторяющуюся встречу на весь день.Он добавляет время начала и окончания к предмету, чтобы я все еще мог ссылаться на него.

Public Sub MakeSeriesAllDay()

Dim oAppt As AppointmentItem
Dim oApptParent As AppointmentItem

'Get the selected appointment
Set oAppt = Outlook.Application.ActiveExplorer.Selection.Item(1)

'Get the selected appointment's parent (series)
Set oApptParent = oAppt.Parent

'Append the appointment time into the parent subject (series)
oApptParent.Subject = oApptParent.Subject & ", " & Format(oApptParent.Start, "h:mm AM/PM") & "-" & Format(oApptParent.End, "h:mm AM/PM")
oApptParent.Save

'Change the appointment to start at midnight and be all day
oApptParent.GetRecurrencePattern.StartTime = #12:00:00 AM#
oApptParent.GetRecurrencePattern.Duration = 1440
oApptParent.Save

Set oAppt = Nothing
Set oApptParent = Nothing

End Sub

Отлично работает!Проблема в том, что любые исключения перезаписываются при изменении AppointmentItem.Parent.Как мне сохранить исключения?Или, что еще лучше, после смены родителя, как создать новые исключения, отражающие старые исключения?

1 Ответ

0 голосов
/ 20 декабря 2018

Когда вы работаете с повторяющимися элементами встречи, вы должны освободить все предыдущие ссылки, получить новые ссылки на повторяющиеся элементы встречи, прежде чем получить доступ или изменить элемент, и освободить эти ссылки, как только вы закончите и сохраните изменения.

Эта практика применяется к повторяющемуся объекту AppointmentItem и любому объекту Exception или RecurrencePattern.Чтобы освободить ссылку в Visual Basic для приложений (VBA) или Visual Basic, установите для этого существующего объекта значение Nothing.В C # явно освободите память для этого объекта.

Для получения дополнительной информации перейдите по этой ссылке:

Outlook RecurrencePattern.Exceptions.Count НЕ обновляется после изменения или удаления вхождения

Outlook VSTO - Сохранить родительский элемент AppointmentItem

...