Лабораторная работа №4
Автоматизация Microsoft Word: работа с документом
Цель: получить навыки разработки контроллеров автоматизации Microsoft Word.
Краткие теоретические сведения
1 Объектная модель Microsoft Word
Приложения Microsoft Office предоставляют контроллерам автоматизации доступ к своей функциональности с помощью объектной модели, представляющей собой иерархию объектов. Объекты могут предоставлять доступ к другим объектам посредством коллекций.
На рисунке 1 приведена иерархия объектов Microsoft Word.
Рис. 1 – Объектная модель Microsoft Word
2 Создание и открытие документов Microsoft Word
Создать новый документ Word можно, используя метод Add коллекции Documents объекта Application:
App.Documents.Add;
Для открытия уже существующего документа следует воспользоваться методом Open коллекции Documents:
App.Documents.Open('С:\MyWordFi1e.doc');
Cвойство ActiveDocument объекта Word.Application указывает на текущий активный документ среди одного или нескольких открытых. Помимо этого, к документу можно обращаться по его порядковому номеру с помощью метода Item. Например, ко второму открытому документу можно обратиться так:
App.Documents.Item(2)
Нумерация членов коллекций в Microsoft Office начинается с единицы.
Сделать документ активным можно с помощью метода Activate:
App.Documents.Item(1).Activate;
3 Сохранение, печать и закрытие документов Microsoft Word
Закрытие документа может быть осуществлено с помощью метода Close одним из следующих способов:
App.Documents.Item(2).Close;
App.ActiveDocument.Close;
Метод Close имеет несколько необязательных (в случае позднего связывания) параметров, влияющих на правила сохранения документа. Первый из них определяет необходимость сохранения внесенных в документ изменений и принимает три возможных значения (соответствующие константы рекомендуется описать в приложении):
const
wdDoNotSaveChanges = $00000000; // не сохранять изменения
wdSaveChanges = SFFFFFFFF; // сохранять изменения
wdPromptToSaveChanges = $FFFFFFFE; // вывести диалоговое окно
// с соответствующим запросом
Второй параметр определяет формат сохраняемого документа:
const
wdWordDocument = $00000000; // сохранить в формате Word
wdOriginalDocumentFormat = $00000001; // сохранить в исходном
// формате документа
wdPromptUser = $00000002; // вывести диалоговое окно Save As
Третий параметр принимает значения True или False и определяет необходимость пересылки документа следующему пользователю по электронной почте. Если такая функциональность не нужна, этот параметр можно проигнорировать.
Таким образом, при использовании перечисленных выше параметров закрыть документ можно, например, так:
Арр.ActiveDocument.Close(wdSaveChanges.wdPromptUser);
Просто сохранить документ, не закрывая его, можно с помощью метода Save:
Арр.ActiveDocument.Save;
Этот метод также имеет несколько необязательных (в случае позднего связывания) параметров, первый из которых равен True, если документ сохраняется автоматически, и False, если нужно выводить диалоговое окно для получения подтверждения пользователя о сохранении изменений (если таковые были сделаны). Второй параметр влияет на формат сохраняемого документа, и список его возможных значений совпадает со списком значений второго параметра метода Close.
Вывод документа на устройство печати можно осуществить с помощью метода Printout объекта Document, например:
Арр.ActiveDocument.PrintOut;