Ссылка, найденная Юджином, не является строго неправильной, но я подозреваю, что она вводит в заблуждение.
AppointmentItem
может иметь четыре значения для свойства RecurrenceState
:
Constant Value Significance
olApptNotRecurring 0 The appointment is not a recurring appointment.
olApptMaster 1 The appointment is a master appointment.
olApptOccurrence 2 The appointment is an occurrence of a recurring
appointment defined by a master appointment.
olApptException 3 The appointment is an exception to a recurrence
pattern defined by a master appointment.
From Мои собственные эксперименты, вы найдете только первые два значения, если будете искать в папке календаря. Я считаю, что olApptOccurrence
можно найти только в результате вызова метода RecurrencePattern.GetOccurrence. Я считаю, что olApptException
можно найти только в AppointmentItem
с RecurrenceState
из olApptMaster
. Об этом позже.
Объект AppointmentItem
содержит все свойства для единовременной встречи. Вы используете метод AppointmentItem.GetRecurrencePattern
, чтобы получить дополнительные свойства для повторяющегося свойства.
AppointmentItem.GetRecurrencePattern
возвращает RecurrencePattern
. Повторное посещение может происходить один раз в год, один раз в месяц, один раз в неделю, один раз во вторник и четверг и многие другие повторения. Все детали выбранного повторения подробно описаны в RecurrencePattern
.
Одним из свойств RecurrencePattern
является коллекция Exceptions
. Эта коллекция содержит один объект Exception
на исключение. На еженедельное совещание по проекту вы можете отсутствовать на одну неделю или на одну неделю, это может быть класс sh с совещанием в отделе, и его дата, время и место изменены. Каждое из этих исключений подробно описано в объекте Exception
.
Два свойства объекта Exception
: Deleted
и AppointmentItem
. Для отсутствующей встречи по проекту Deleted
будет True, а для Exception
не будет свойства AppointmentItem
. Для собрания по проекту, которое необходимо было перенести, Deleted
будет False, и будет свойство AppointmentItem
с RecurrenceState
из olApptException
для Exception
, описывающее исключительную дату, время, место, продолжительность и и так далее.
Информация, которую я нашел, указывает на то, что вы не можете изменить Exception
, но вы можете «стереть» один, используя методы, которые зависят от используемого языка.
From https://docs.microsoft.com/en-us/office/vba/api/Outlook.Exception:
Когда вы работаете с элементами повторяющихся встреч, вы должны освободить все предыдущие ссылки, получить новые ссылки на элемент повторяющихся встреч, прежде чем открывать или изменять элемент, и освобождать эти ссылки как только вы закончите и сохранили изменения. Эта практика применяется к повторяющемуся объекту AppointmentItem и любому объекту Exception или RecurrencePattern. Чтобы освободить ссылку в Visual Basi c для приложений (VBA) или Visual Basi c, установите для этого существующего объекта значение Nothing. В C# явно освободите память для этого объекта. Для примера кода см. Topi c для объекта AppointmentItem.
Обещанный код - VB, его можно найти в https://docs.microsoft.com/en-us/office/vba/api/outlook.appointmentitem.
В настоящее время у меня нет времени экспериментировать с удалением исключения удаления. Я добавлю его в список дел на потом. Теперь вы можете поэкспериментировать с sh. Мне был бы интересен результат вашего эксперимента.