/******************* Начало **********************************/
Main;
/************* Конец *********************************************/
Глава 8
Взаимодействие сценариев с Microsoft Office
Не будет большим преувеличением сказать, что почти на всех компьютерах с операционной системой Windows установлены программы пакета Microsoft Office. Эти приложения являются серверами автоматизации, т.е. их действиями можно управлять из внешних программ, в том числе и из сценариев WSH. В этой главе мы рассмотрим на примерах, каким образом можно выводить из сценариев WSH информацию в две наиболее распространенные офисные программы — Microsoft Word и Microsoft Excel.
Объектные модели Microsoft Word и Excel
Для того чтобы использовать из сценариев WSH те возможности, которые поддерживают программы Word и Excel, необходимо знать, какие именно объекты предоставляются для внешнего использования этими серверами автоматизации и как объекты соотносятся друг с другом. Хотя объектные модели различных приложений Microsoft Office довольно сложны (например, Word содержит порядка 200 взаимосвязанных друг с другом объектов), они очень похожи друг на друга, причем для практических целей достаточно понять принцип работы с несколькими ключевыми объектами. Здесь мы не будем останавливаться на подробном рассмотрении свойств и методов объектов Word и Excel (для желающих глубже познакомиться с этой темой можно порекомендовать, например, замечательную книгу [17]), а лишь кратко упомянем, какие именно объекты будут использоваться в рассмотренных ниже примерах сценариев.
Увидеть структуру объектной модели Word можно воспользовавшись встроенной в Word справкой по Visual Basic (рис. 8.1).
Рис. 8.1. Объектная модель Microsoft Word
Итак, на самом верхнем уровне объектной модели Word находится объект
Application
, который представляет непосредственно само приложение Word и содержит (в качестве свойств) все остальные объекты. Таким
образом, объект
Application
используется для получения доступа к любому другому объекту Word.
Семейство
Documents
является свойством объекта
Application
и содержит набор объектов
Document
, каждый из которых соответствует открытому в Word документу. Класс
Documents
понадобится нам в сценариях для создания новых документов. Объект
Document
содержит в качестве своих свойств семейства различных объектов документа; символов (
Characters
), слов (
Words
), предложений (
Sentences
), параграфов (
Paragraphs
) и т.д. В одном из рассмотренных ниже сценариев, например, нам понадобится работать с семейством закладок в документе (
Bookmarks
).
Объект
Selection
позволяет работать с выделенным фрагментом текста (этот фрагмент может быть и пустым). Таким образом, можно сказать, что объект
Selection
открывает путь в документ, т.к. он предоставляет доступ к выделенному фрагменту документа. В частности, у объекта
Selection
имеется метод
TypeText(Text)
, с помощью которого можно вставлять текст в документ. Используя свойства этого объекта (которые, в свою очередь, могут являться объектами со своими свойствами), можно управлять параметрами выделенного фрагмента, например, устанавливать нужный размер и гарнитуру шрифта, выравнивать параграфы по центру и т.п.
Объектная модель Excel построена по тому же принципу, что и объектная модель Word. Основным объектом, содержащим все остальные, является
Application
(рис. 8.2).
Рис. 8.2. Объектная модель Microsoft Excel
Напомним, что отдельные файлы в Excel называются рабочими книгами. Семейство
Workbooks
в Excel является аналогом семейства
Documents
в Word и содержит набор объектов
Workbook
(аналог объекта
Document
в Word), каждый из которых соответствует открытой в Word рабочей книге. Новая рабочая книга создается с помощью метода
Add
объекта
Workbooks
.
Для доступа к ячейкам активного рабочего листа Excel используется свойство
Cells
объекта
Application
. Для получения или изменения значения отдельной ячейки применяется конструкция
Cells(row, column).Value
, где
row
и
column
являются соответственно номерами строки и столбца, на пересечении которых находится данная ячейка.
В Excel, как и в Word, имеется объект
Selection
, позволяющий работать с выделенным фрагментом электронной таблицы. Самым простым способом выделить диапазон ячеек активного рабочего листа является использование метода