Прочитать на английском

Поделиться через


Объект AppointmentItem (Outlook)

Представляет собрание, однократную встречу или повторяющуюся встречу или собрание в папке Календарь.

Замечания

Используйте метод CreateItem , чтобы создать объект AppointmentItem , представляющий новую встречу.

Используйте items (index), где index — это номер индекса встречи или значение, используемое для соответствия свойству встречи по умолчанию, чтобы вернуть один объект AppointmentItem из папки Calendar.

Вы также можете вернуть объект AppointmentItem из объекта MeetingItem с помощью метода GetAssociatedAppointment .

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

Обратите внимание, что даже после высвобождения ссылки и попытки получения новой ссылки, если по-прежнему существует активная ссылка на любой из вышеупомянутых объектов, удерживаемая другой надстройкой или приложением Outlook, новая ссылка будет указывать на устаревшую копию объекта. В связи с этим важно высвобождать ссылки немедленно после завершения текущей встречи.

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

Sub TestExceptions() 
 
 Dim oItems As Items 
 
 Dim oItemOriginal As AppointmentItem 
 
 Dim oItemNew As AppointmentItem 
 
 Dim rPattern As RecurrencePattern 
 
 Dim oEx As Exceptions 
 
 Dim oEx2 As Exceptions 
 
 Dim oOccurrence As AppointmentItem 
 
 Dim i As Long 
 
 
 
 ' This is the initial reference to an appointment collection. 
 
 Set oItems = _ 
 
 Outlook.Application.Session.GetDefaultFolder(olFolderCalendar).Items 
 
 
 
 ' This is the original reference to the first appointment in the 
 
 ' collection before an exception is created. 
 
 Set oItemOriginal = oItems.Item(1) 
 
 
 
 ' Code example assumes that the first appointment in the collection 
 
 ' is a recurring appointment. 
 
 Set oOccurrence = _ 
 
 oItemOriginal.GetRecurrencePattern().GetOccurrence(#2/28/2010 8:00:00 AM#) 
 
 
 
 ' Create an exception by changing the 2/28 occurrence to 3/3. 
 
 oOccurrence.Start = #3/3/2010 8:00:00 AM# 
 
 oOccurrence.Save 
 
 
 
 Stop 
 
 
 
 ' Preexisting reference to the first appointment in the collection 
 
 ' does not reflect the exception. 
 
 oItemOriginal.Save 
 
 Set oEx = oItemOriginal.GetRecurrencePattern().Exceptions 
 
 Debug.Print oItemOriginal.subject 
 
 Debug.Print " Original item exceptions: " & oEx.Count 
 
 
 
 ' Get a new reference based on the existing reference to the 
 
 ' appointment collection created before the exception. 
 
 ' The new reference does not reflect the exception. 
 
 Set oItemNew = oItems.Item(1) 
 
 oItemNew.Save 
 
 Set oEx2 = oItemNew.GetRecurrencePattern().Exceptions 
 
 Debug.Print " New item exceptions: " & oEx2.Count 
 
 
 
 ' Same: preexisting reference to the first appointment in the collection 
 
 ' does not reflect the exception. 
 
 Set oEx = oItemOriginal.GetRecurrencePattern().Exceptions 
 
 Debug.Print " Original item exceptions: " & oEx.Count 
 
 
 
 ' Release all existing references to appointment items, 
 
 ' including the appointment collection, an exception, occurrence, 
 
 ' or any other appointment. 
 
 Debug.Print "REFRESH ITEM COLLECTION" 
 
 Set oItems = Nothing 
 
 Set oItemNew = Nothing 
 
 Set oEx = Nothing 
 
 Set oEx2 = Nothing 
 
 Set oOccurrence = Nothing 
 
 Set oItemOriginal = Nothing 
 
 Set rPattern = Nothing 
 
 
 
 ' Get new references to appointment items, including the appointment 
 
 ' collection, individual appointments, and exceptions. 
 
 Set oItems = _ 
 
 Outlook.Application.Session.GetDefaultFolder(olFolderCalendar).Items 
 
 Set oItemNew = oItems.Item(1) 
 
 
 
 ' If no other add-ins have the same recurring appointment open, 
 
 ' the new references reflect the current exception count. 
 
 Set oEx2 = oItemNew.GetRecurrencePattern().Exceptions 
 
 Debug.Print " New item exceptions: " & oEx2.Count 
 
 
 
 Debug.Print "RE-GET ORIGINAL" 
 
 Set oItemOriginal = oItems.Item(1) 
 
 Set oEx = oItemOriginal.GetRecurrencePattern().Exceptions 
 
 Debug.Print " Original item exceptions: " & oEx.Count 
 
End Sub

Пример

Следующий пример Visual Basic для приложений (VBA) возвращает новую встречу.

Set myItem = Application.CreateItem(olAppointmentItem)

События

Методы

Свойства

См. также

Справочник по объектной модели Outlook. Импорт XML-данных о встречах в объекты встречи OutlookAppointmentItem Object Members

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.