Enumerating, Searching, and Filtering Items in a Folder
Объектная модель Outlook предоставляет несколько точек входа, которые поддерживают перечисление, поиск и фильтрацию элементов в папке.
Перечисление элементов
Объекты Items, Table и Selection поддерживают перечисление элементов в папке. Однако существуют определенные сценарии, в которых вы выбираете один из остальных.
Вы можете получить коллекцию Items , вызвав Folder.Items , которая возвращает элементы в папке. Каждый объект элемента в коллекции имеет все явные встроенные свойства и пользовательские свойства и поддерживает операции чтения и записи. Коллекция Items также поддерживает фильтры и события, которые срабатся при добавлении, изменении или удалении элементов из коллекции.
Используйте Folder.GetTable или Search.GetTable , чтобы получить объект Table , представляющий набор элементов в папке или папке поиска. В обоих случаях можно указать фильтр, чтобы получить подмножество элементов в папке, или, если не указать фильтр, получить все элементы в папке. По умолчанию каждый элемент возвращаемой таблицы содержит только подмножество свойств по умолчанию.
Вы можете просмотреть каждую строку таблицы как элемент в папке, каждый столбец — как свойство элемента, а таблица — это небольшой набор строк в памяти, который позволяет быстро перечислять и фильтровать элементы в папке. Хотя добавление и удаление базовой папки отражаются в строках в таблице, таблица не поддерживает никаких событий для добавления, изменения и удаления строк.
Если требуется записываемый объект из строки Table , получите идентификатор записи для этой строки из столбца EntryID по умолчанию в таблице , а затем используйте метод GetItemFromID объекта NameSpace , чтобы получить полный элемент, например MailItem или ContactItem, поддерживающий операции чтения и записи. Дополнительные сведения о столбцах по умолчанию в таблице см. в разделе Свойства efault, отображаемые в объекте Table.
Объект Selection поддерживает перечисление элементов, выбранных пользователем в настоящее время в обозревателе. Так как обозреватель отображает содержимое папки, объект Selection поддерживает перечисление элементов в этой папке в рамках выбора пользователем.
Примечание Папка в Outlook может содержать разнородные элементы. Например, папка "Контакты" по умолчанию поддерживает создание элементов контактов и списков рассылки. Поскольку объекты Items, Table и Selection инкапсулируют элементы в папке или папке поиска, элементы в них не обязательно имеют один и тот же класс сообщений. При перечислении элементов в этих коллекциях и объектах рекомендуется сначала проверить наличие класса сообщений каждого элемента перед доступом к свойствам элемента.
Поиск и фильтрация элементов
Объекты Items, Table, Application и View поддерживают поиск и фильтрацию элементов в папке. В следующей таблице описаны и сравниваются эти точки входа:
Точка входа | Действие | Объект фильтра поиска | Поддержка фильтра Jet | Поддержка фильтров DASL | Comments |
---|---|---|---|---|---|
Application.AdvancedSearch | Задает критерии для объекта Search и возвращает объект Search . Search.Results указывает результаты поиска. Search.Save обновляет папку поиска с результатами поиска. | Folder | Нет | Да | |
Folder.GetTable | Возвращает таблицу элементов в папке на основе любого заданного фильтра. | Folder | Да | Да | Некоторые свойства не поддерживаются в фильтре таблицы , включая двоичные свойства и содержимое текста HTML или RTF. Дополнительные сведения см. в разделе Неподдерживаемые свойства в объекте таблицы или фильтре таблиц. |
Items.Find | Выполняет поиск первого элемента, удовлетворяющего указанному фильтру. | Folder | Да | Нет | Некоторые свойства не поддерживаются в фильтре, включая текст. Дополнительные сведения см. в разделе Items.Find. |
Items.Restrict | Фильтрует заданный набор элементов на основе указанных ограничений и возвращает другую коллекцию Items . | Folder | Да | Да | Некоторые свойства не поддерживаются в фильтре, например Body. Дополнительные сведения см. в разделе Items.Restrict. |
Search.GetTable | Возвращает таблицу элементов в папке поиска на основе любого фильтра, производного от Application.AdvancedSearch. | Папка поиска | Нет | Да | Search.GetTable наследует фильтр от объекта Search (в частности, свойства Search.Filter ), возвращаемого из Application.AdvancedSearch. |
Table.Restrict | Фильтрует строки в заданной таблице на основе указанного фильтра и возвращает другой объект Table . | Folder | Да | Да | Некоторые свойства не поддерживаются в фильтре таблицы , включая двоичные свойства и содержимое текста HTML или RTF. Дополнительные сведения см. в разделе Неподдерживаемые свойства в объекте таблицы или фильтре таблиц. |
View.Filter | Задает фильтр представления без изменения XML-кода представления. Установка фильтра для представления изменяет только представление в пользовательском интерфейсе и не приводит к созданию отфильтрованной коллекции Items . | Folder | Нет | Да | |
View.XML | Возвращает или задает XML-код для представления. <Изменение узла Фильтр> изменяет фильтр представления. Задание XML-кода для представления изменяет только представление в пользовательском интерфейсе и не приводит к созданию отфильтрованной коллекции Items . | Folder | Нет | Да | Просмотр XML не рекомендуется. Используйте объектную модель View для программирования представлений. |
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.