(Sentences
), параграфов (Paragraphs
) и т.д. В одном из рассмотренных ниже сценариев, например, нам понадобится работать с семейством закладок в документе (Bookmarks
).
Объект Selection
позволяет работать с выделенным фрагментом текста (этот фрагмент может быть и пустым). Таким образом, можно сказать, что объект Selection
открывает путь в документ, т.к. он предоставляет доступ к выделенному фрагменту документа. В частности, у объекта Selection
имеется метод TypeText(
, с помощью которого можно вставлять текст в документ. Используя свойства этого объекта (которые, в свою очередь, могут являться объектами со своими свойствами), можно управлять параметрами выделенного фрагмента, например, устанавливать нужный размер и гарнитуру шрифта, выравнивать параграфы по центру и т.п.
Объектная модель Excel построена по тому же принципу, что и объектная модель Word. Основным объектом, содержащим все остальные, является Application
(рис. 8.2).

Рис. 8.2. Объектная модель Microsoft Excel
Напомним, что отдельные файлы в Excel называютсяWorkbooks
в Excel является аналогом семейства Documents
в Word и содержит набор объектов Workbook
(аналог объекта Document
в Word), каждый из которых соответствует открытой в Word рабочей книге. Новая рабочая книга создается с помощью метода Add()
объекта Workbooks
.
Для доступа к ячейкам активного рабочего листа Excel используется свойство Cells
объекта Application
. Для получения или изменения значения отдельной ячейки применяется конструкция Cells(
, где
и column
В Excel, как и в Word, имеется объект Selection
, позволяющий работать с выделенным фрагментом электронной таблицы. Самым простым способом выделить диапазон ячеек активного рабочего листа является использование метода Select()
объекта Range
. Например, выражение Range('A1:C1').Select()
позволяет выделить три смежные ячейки: 'A1
', 'B1
' и 'C1
'.
Для того чтобы понять, какой именно объект Word или Excel нужно использовать для решения той или иной задачи, часто проще всего бывает проделать в соответствующем приложении необходимые манипуляции вручную, включив предварительно режим записи макроса. В результате мы получим текст макроса на языке VBA (Visual Basic for Applications), из которого будет ясно, какие методы и с какими параметрами нужно вызывать и какие значения нужно присваивать свойствам объектов. В качестве простой иллюстрации проделаем следующие действия. Запустим Word, запустим Macro Recorder (Сервис|Макрос|Начать запись (Tools|Macros|Record)), назовем новый макрос 'Andrey' и нажмем на кнопку OK (рис. 8.3).

Рис. 8.3. Создание нового макроса в Macro Recorder
После этого напишем в документе слово 'Андрей' и прекратим запись макроса. Теперь можно посмотреть содержимое записанного макроса. Для этого нужно выбрать пункт Макросы (Macroses) в меню Сервис|Макрос (Tools|Macros), выделить макрос 'Andrey' в списке всех доступных макросов и нажать кнопку Изменить (Edit). В открывшемся окне редактора Visual Basic появится текст макроса:
Sub Андрей()
'
' Андрей Макрос
' Макрос записан 01.08.02 Андрей Владимирович Попов
'
Selection.TypeText Text:='Андрей'
End Sub
Как мы видим, для печати слова в документе был использован метод TypeText
объекта Selection
.
Макросы в Excel записываются и редактируются аналогичным образом.
Вывод данных из записной книжки в документ Microsoft Word
В качестве примера взаимодействия WSH с Microsoft Word мы рассмотрим два сценария, которые будут создавать документы Word и выводить туда информацию из записной книжки в XML-формате, которая хранится в файле book.xml.

Рис. 8.4. Вывод данных из XML-файла в документ Word в виде обычного текста
В первом из этих сценариев поля каждой записи будут располагаться друг под другом, т.е. информация печатается в виде обычного текста (рис. 8.4).
Второй сценарий будет заполнять данными из XML-файла строки таблицы в документе Word (рис. 8.5).

Рис. 8.5. Вывод данных из XML-файла в таблицу Word
Вывод записей в виде обычного текста
Для печати данных из book.xml в документ Word в режиме обычного текста мы создадим JScript- сценарий ListWord.js. За основу этого сценария взят рассмотренный в
Основная функция Main()
сценария ListWord.js начинается с создания объекта WshShell
и вызова функции InitPath()
, в которой определяются пути к файлам book.xml (переменная PathBook
) и out.doc (переменная PathOut
):
//Создаем объект WshShell
WshShell = WScript.CreateObject('WScript.Shell');
//Определяем пути к файлам
InitPath();
Для запуска новой копии Microsoft Word мы создаем экземпляр объекта Word.Application:
//Создаем объект Application
WA=WScript.CreateObject('Word.Application');
После запуска Word в нем создается новый пустой документ с помощью метода Add()
семейства Documents
; ссылка на получающийся в результате экземпляр объекта Document
сохраняется в переменной WD
: