Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Для того чтобы понять, какой именно объект 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. За основу этого сценария взят рассмотренный в главе 6 сценарий SortNameXMLDOM.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
:

//Создаем новый документ

wd=WA.Documents.Add;

Так как процесс печати данных из сценария может быть довольно длительным, окно Word мы сделаем видимым и максимизируем его:

//Делаем окно Winword видимым

WA.Visible=true;

//Максимизируем окно Winword

WA.WindowState=wdWindowStateMaximize;

Для того чтобы начать печатать в окне Word, нужно получить ссылку на объект

Selection
(глобальная переменная
Sel
), который позволяет работать с выделенным текстом:

//Получаем ссылку на объект Selection

Sel=WA.Selection;

С помощью свойства

Font
объекта
Selection
мы устанавливаем размер шрифта, которым далее будет печататься текст:

//Устанавливаем размер шрифта 12 пт

Sel.Font.Size=12;
 

Теперь мы полностью готовы начать печать текста. Сначала в функции

TopReport
печатается заголовок отчета:

//Печатаем заголовок отчета

TopReport("Общий список");

Функция

TopReport(Mess)
имеет следующий вид:

//Вывод заголовка отчета

function TopReport(Mess) {

 //Устанавливаем выравнивание по центру

 Sel.ParagraphFormat.Alignment=wdAlignParagraphCenter;

 //Устанавливаем полужирный шрифт

 Sel.Font.Bold=true;

 //Выводим сообщение с переводом строки

 Sel.TypeText(Mess+"\n");

 Sel.TypeText("\n");

 //Устанавливаем выравнивание слева

 Sel.ParagraphFormat.Alignment=wdAlignParagraphLeft;

 //Отменяем полужирный шрифт

 Sel.Font.Bold=false;

Поделиться:
Популярные книги

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

Вадбольский

Никитин Юрий Александрович
1. Вадбольский
Фантастика:
попаданцы
5.00
рейтинг книги
Вадбольский

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

В зоне особого внимания

Иванов Дмитрий
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
В зоне особого внимания

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Кодекс Крови. Книга ХI

Борзых М.
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХI

Третий

INDIGO
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Потусторонний. Книга 1

Погуляй Юрий Александрович
1. Господин Артемьев
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Потусторонний. Книга 1