'
' Андрей Макрос
' Макрос записан 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;
}
Как мы видим, текст печатается с помощью метода TypeText()
, а форматируется путем изменения соответствующих свойств объекта Selection
(которые, в свою очередь, являются объектами того или иного типа). Отметим, что именные константы, которые используются для форматирования текста, были предварительно проинициализированы в самом начале сценария:
//Инициализируем константы Winword'а
var wdAlignParagraphLeft=0, wdAlignParagraphCenter=1, wdWindowStateMaximize=1;
После выполнения функции TopReport()
в документе Word будет полужирным шрифтом с выравниванием по центру напечатана строка "Общий список", а курсор установится на две строки ниже (рис. 8.6).
Рис. 8.6.Заголовок отчета, напечатанный в сценарии ListWord.js
Читать дальше