Объекты Microsoft Word

Объектная модель Microsoft Word организована аналогично объектной модели Microsoft Excel. На разных уровнях иерархии в приложении определено около 200 объектов, совокупность которых и определяет возможности MS Word, его свойства и поведение. Главным объектом этой иерархии является объект Application. Мы рассмотрим также объект Document, представляющий отдельный документ, и коллекцию Documents, объекты Range и Selection. Полное описание объектов приложения можно найти в справочной системе MS Word.

Объект Application

Объект Application определяет свойства и поведение приложения в целом. Он имеет более сотни элементов: свойств, методов и событий (см. статью "Application Object Members" справочной системы Microsoft Word). Как и в MS Excel, многие свойства и методы Application можно вызывать, не указывая имя этого объекта. Например, вместо Application.Documents.Add можно написать просто Documents.Add.

Из всех свойств объекта наиболее часто используются ActiveDocument и Selection, а также коллекция всех открытых документов Documents.

Событий объект имеет довольно много. В табл. 12.28 приведены некоторые из них.

Таблица 12.28

Основные события объекта Application

Событие

Описание

Document BeforeClose

Возникает перед закрытием документа

Document BeforePrint

Возникает перед печатью документа

Docu merit BeforeSave

Возникает перед сохранением документа

DocumentChange

Возникает при переходе к другому документу

DocumenlOpen

Возникает перед открытием документа

NewDocument

Возникает при создании нового документа

Window Activate

Возникает, когда окно документа становится активным

Quit

Возникает перед закрытием приложения

Метод Quit объекта Application завершает работу Word. При выходе из приложения можно сохранить все открытые документы. В следующем примере мы сначала спрашиваем пользователя, нужно ли сохранять документы, и, если он ответит "Да", сохраняем их:

Ans = MgsBox("Сохранить все документы", vbYesNo)

If Ans = vbYes Then Application.Quit SaveChanges:=wdSaveChanges

Объект Document и коллекция Documents

Когда запускается приложение MS Word, создается коллекция документов Documents, содержащая все открытые документы. Чтобы получить доступ к нужному документу в коллекции, достаточно указать его ключ (имя файла, хранящего документ) или его порядковый номер в коллекции. Каждый документ представляется объектом Document.

Основные методы коллекции Documents приведены в табл. 12.29.

Среди свойств объекта Document основной интерес представляют коллекции. Их довольно много (больше 30). Ос-

Таблица 12.29

Основные методы коллекции Documents

Метод

Описание

Add

Создает новый пустой документ и добавляет его в коллекцию: Documents.Add

Open

Открывает существующий документ и добавляет его в коллекцию:

Documents.Open FileName:= "C:My.docx"

Save

Сохраняет все документы коллекции

Close

Закрывает документы, сохраняя их, если в параметре задано сохранение, и удаляет из коллекции

новными коллекциями являются: Characters (символы), Words (слова), Statements (предложения), Paragraphs (абзацы), Sections (разделы), Tables (таблицы). Обратите внимание, что в Word нет специальных классов для символа, слова или предложения. Элементами коллекций Characters, Words и Statements являются объекты класса Range. Так как любую часть документа можно задать, указав первый и последний символы фрагмента текста, работа с текстом ведется через методы и свойства объекта Range.

Основные методы объекта Document приведены в табл. 12.30.

Таблица 12.30

Основные методы объекта Document

Метод

Описание

Range

Возвращает объект Range, соответствующий заданным начальной и конечной позициям в документе. Так можно выделить первые 10 символов активного документа:

ActiveDocument.Range(Start:=0, End:=10).Select

Select

Выделяет содержимое документа

SaveAs2

Сохраняет документ под новым именем или в другом формате:

ActiveDocument.SaveAs2 FileName:= "Doc2.rtf”, _

FileFormat:=wdFormatRTF

Close

Закрывает документ. Так можно закрыть документ, не сохраняя:

Documents("My.docx").CIose SaveChanges:=wdDoNotSaveChanges

Print Out

Печатает весь документ или его часть