Visual Basic 6. Руководство разработчика

Взаимодействие с


Word

Microsoft Word предоставляет многочисленные объекты, которые можно использовать для программирования любых операций, которые могут быть выпол­нены с помощью команд меню. Например, можно открыть документ, подсчитать количество слов и символов, заменить в нем некоторые слова, и снова сохранить его на диске — и все это без вмешательства пользователя. Все необходимые действия могут быть выполнены в фоновом режиме, без вывода окна Word на рабочий стол.

Объект верхнего уровня в Word — это объект Application, который представляет собой текущий экземпляр приложения. Можно воспользоваться объектом Application, чтобы обратиться к некоторым общим свойствам окна Word, включая свойство Visible (с помощью которого приложение можно сделать невидимым) и к активным документам (чтобы переключиться на обработке одного из открытых документов).

Ниже в иерархии под объектом Application располагается семейство Documents, которое содержит объект Document

для каждого открытого документа. Используя объектную переменную типа Document, можно обращаться к любому открытому документу (или открывать и создавать новые документы). Наиболее важный объект, который предоставляет каждый документ - это объект Range, представляющий собой непрерывную часть текста. Эта часть может быть словом, частью слова, символами или целым документом. Используя методы объекта Range, можно вставлять новый текст, форматировать, существующий текст (или удалять его), и так далее.

Чтобы адресовать специфические элементы текста, можно воспользоваться следующими семействами:

•  семейством Paragraphs (Абзацы), состоящим из объектов типа Paragraph, которые представляют собой абзацы текста;

•  семейством Words (Слова), состоящим из объектов типа Word, которые пред­ставляют собой слова;

•  семейством Characters (Символы), состоящим из объектов типа Character, которые представляют собой отдельные символы.

Например, можно получить доступ ко всем абзацам документа с помощью семейства Paragraphs (Абзацы) объекта Document. Если применить тот же самый метод к текущему выделению (предоставленному объектом Selection), можно получить доступ ко всем абзацам в выделенном тексте. В следующем параграфе будут исследованы элементы базовых объектов, предоставляемых Word, чтобы продемонстрировать, как можно использовать их непосредственно в программе Visual Basic.


Чтобы обратиться к таким объектам, как папки, следует создать место для хранения MAPI сообщений. Память MAPI-сообщении — это источник данных, который предоставляет все типы информации, хранимой в Outlook. Приложение Outlook является, на самом деле, интерфейсной частью базы данных, которая содержит разнотипную информацию. Чтобы обратиться к этой информации, необходимо сначала создать объектную переменную mNameSpace.

Set mNameSpace = OLApp GetNamespace("MAPI")



Приведем фрагмент программы, позволяющий организовать доступ к инфор­мации, сохраненной Outlook.

Dim OLApp As Outlook.Application

Dim mNameSpace As NameSpace

Set OLApp = Create0bject ("Outlook.Application")

Set mNameSpace = OLApp.GetNamespace("MAPI")

Используя переменную mNameSpace,

можно обращаться к различным папкам Outlook. Для доступа к папке используется метод GetDefaultFolder, в который в качестве параметра передается имя папки. Метод возвращает объектную пере­менную, которая обеспечивает свойства и методы для доступа к объектам, хранящимся в папке.

К папкам, обслуживаемым Outlook, можно обращаться с помощью следующих констант (их имена очевидны):

olFolderContacts                olFolderDeletedltems       olFolderDrafts olFolderInBox              olfolder Journal                olFolderNotes olFolderOutBox             olFolderSentMail                olFolderTask

Чтобы получить информацию об объектах, хранящихся в  папке Contacts (Контакты), можно воспользоваться следующим выражением:

Set AllContacts = _

mNameSpace.GetDefaultFolder(olFolderContacts).Items

После выполнения этого оператора свойство Items возвратит семейство объектов, хранящихся в папке.

Каждая папка содержит разнотипную информацию. Папка

Contacts (Контакты) состоит из объектов Contactltem, папки InBox и OutBox содержат объекты MailIterm, папка Calendar (Календарь) содержит семейство объектов Appointmentltem. Каждый из этих объектов обладает большим количеством свойств, являющихся, в свою очередь, атрибутами самого объекта. Например, объект Contactltem



обладает свой­ствами, установка значений которых влияет только на параметры контакта.

Чтобы просмотреть свойства объекта Contactltem, откройте Object Browser, выберите Outlook в окне Class (Класс), а в списке Classes (Классы) щелкните на элементе Contactltem (рис. 14.19). Члены выбранного класса появятся на правой панели. Чаще всего в приложениях используются следующие свойства: LastName, FirstName, Email1 Address, Title, и свойства, начинающиеся с HomeAddress и BusmessAddress. Это поля, которые можно заполнить в диалоговом окне Contact, добавляя или редактируя контакт в Outlook. Если требуются дополнительные поля, можно создать свои собственные. К этим свойствам также можно обращаться по именам полей, но такой способ здесь не рассматривается. Для получения более подробной информации следует обратиться к справочной системе Outlook.



Рис. 14.19. Свойства объекта Contactltem

Общим для всех объектов является свойство EntrylD (идентификатор объекта), являющееся значением типа Long. Значения EntrylD аналогичны значениям ID, которые присваиваются различным записям в базе данных (они идентифицируют запись и предназначены только для этого). Разумеется, нелепо требовать, чтобы пользователь выбирал контакт или сообщение по его EntrylD (более подходящими для этого представляются списки имен или компаний), но их можно использовать для создания закладок соответствующих записей. Если пользователь из Outlook заполняет узлы, перечисленные в окне элемента управления Tree View, сообще­ниями или контактами, он может воспользоваться полями EntrylD в качестве ключей для соответствующих узлов. Используя такой способ, пользователь может выбирать объекты, основываясь на более содержательной информации, например, имени абонента, названии компании или темы сообщения. Затем, используя значение ID, можно немедленно разыскать требуемый объект в соответствующей папке. В последующих" параграфах будут приведены примеры использования свойства EntrylD.


Содержание раздела