Свойство Items.IncludeRecurrences (Outlook)
Возвращает логическое значение, указывающее значение True , если коллекция Items должна включать шаблоны повторения. Для чтения и записи.
Синтаксис
выражение. IncludeRecurrences
Выражение Переменная, представляющая объект Items .
Замечания
Это свойство действует только в том случае, если коллекция Items содержит встречи и не отсортирована по свойству, отличному от Start , в порядке возрастания. Значение по умолчанию — False. Используйте это свойство, если требуется получить все встречи для заданной даты, когда повторяющиеся встречи обычно не отображаются, так как они не связаны с какой-либо конкретной датой. Если вам нужно отсортировать и отфильтровать элементы встреч, которые содержат повторяющиеся встречи, это необходимо сделать в следующем порядке: отсортировать элементы по возрастанию, задать для параметра IncludeRecurrences значение True, а затем отфильтровать элементы. Пример кода, показывающий этот порядок, см. во втором примере ниже. Если коллекция включает повторяющиеся встречи без даты окончания, установка для свойства значения True может привести к бесконечному числу коллекций. Обязательно включите тест для этого в любой цикл. Не следует использовать свойство Count коллекции Items при итерации коллекции Items со свойством IncludeRecurrence , для которых задано значение True. Значение Count будет неопределенным.
Предостережение
Фильтрация по отсортированного списка вхождений приведет к тому, что свойство IncludeRecurrences не будет работать должным образом. Например, следующая последовательность вернет все вхождения встреч. повторяющиеся и не повторяющиеся: (1) Сортировка по свойству Start (2) Задайте для свойства значение False (3) call Restrict (т. е. фильтр).
Пример
В следующем примере Visual Basic для приложений (VBA) отображается тема встреч, которые происходят в период с сегодняшнего по завтрашний день, включая повторяющиеся встречи.
Sub DemoFindNext()
Dim myNameSpace As Outlook.NameSpace
Dim tdystart As Date
Dim tdyend As Date
Dim myAppointments As Outlook.Items
Dim currentAppointment As Outlook.AppointmentItem
Set myNameSpace = Application.GetNamespace("MAPI")
tdystart = VBA.Format(Now, "Short Date")
tdyend = VBA.Format(Now + 1, "Short Date")
Set myAppointments = myNameSpace.GetDefaultFolder(olFolderCalendar).Items
myAppointments.Sort "[Start]"
myAppointments.IncludeRecurrences = True
Set currentAppointment = myAppointments.Find("[Start] >= """ & _
tdystart & """ and [Start] <= """ & tdyend & """")
While TypeName(currentAppointment) <> "Nothing"
MsgBox currentAppointment.Subject
Set currentAppointment = myAppointments.FindNext
Wend
End Sub
В приведенном ниже примере показан порядок сортировки и фильтрации элементов встреч, содержащих повторяющиеся встречи.
Sub SortAndFilterAppointments()
Dim myNameSpace As Outlook.NameSpace
Dim myAppointments As Outlook.Items
Set myNameSpace = Application.GetNamespace("MAPI")
Set calendarItems = myNameSpace.GetDefaultFolder(olFolderCalendar).Items
calendarItems.Sort "[Start]"
calendarItems.IncludeRecurrences = True
Set restrictedItems = calendarItems.Restrict("[Organizer]='Dan Wilson'")
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.