Из Java в VBS...люди добрые - не можу!!

Windows Script Host (WSH), WMI, vbs скрипты и т.д. Создание и применение скриптов.

Модератор: Модераторы

Новый участник
Сообщения: 4
Зарегистрирован: 13 янв 2005, 03:47

Сообщение genesis » 13 янв 2005, 03:57

Такая байда товарищи: на этом сайте в статье про WSH был дан пример работы с WORD-ом...а именно создание скриптом нового файла, создание там таблицы и занесение в неё данных НО НА JAVA!!:( Мне же понадобилось вставить нечто подобное в скрипт на VBS....и не можу!! :( Стыдно и печально...может кто поможет?? Плиииз...
Приведу этот пример:


var wrd = new ActiveXObject("Word.Application");
//Создаем новый документ
wrd.Documents.Add();
//Получаем указатель на активный документ
adoc=wrd.ActiveDocument;
//Указатель на область в документе
myRange = adoc.Range(Start=0, End=0)
//Активизируем Ворд
wrd.Visible = true;
wrd.Activate();

//Создаем таблицу с одной строкой и тремя столбцами
tb0=adoc.tables.Add(Range=myRange, NumRows=1, NumColumns=3);
//Задаем ширину столбцов
tb0.Columns(1).Width = 80;
tb0.Columns(2).Width = 160;
tb0.Columns(3).Width = 160;

//Заполняем заголовок таблицы
tb0.Cell(1,1).Range.InsertAfter("Название свойства");
tb0.Cell(1,2).Range.InsertAfter("Значение");
tb0.Cell(1,3).Range.InsertAfter("Описание");

//Счетчик строк
intIndex = 2;

//Выводимая в строках таблицы информация
Show("Name", WScript.Name, "Application Friendly Name");
Show("Version", WScript.Version, "Application Version");
Show("FullName", WScript.FullName, "Application Context: Fully Qualified Name");
Show("Path", WScript.Path, "Application Context: Path Only");
Show("Interactive", WScript.Interactive, "State of Interactive Mode");

//Ну и сама функция для вывода строк
function Show(strName, strValue, strDesc) {
tb0.Rows.Add();
tb0.Cell(intIndex, 1).Range.InsertAfter(strName);
tb0.Cell(intIndex, 2).Range.InsertAfter(strValue);
tb0.Cell(intIndex, 3).Range.InsertAfter(strDesc);
intIndex++;
}

Было б еще замечательно если бы сразу и добавили строчку сохранения созданного файла в указанную директорию...:)

Спасибо хоть за то что прочитали сию мараку..:)

/replace by Gifted

Активный пользователь
Сообщения: 243
Зарегистрирован: 30 июн 2004, 16:18
Откуда: Кировоград (Украина)

Сообщение Valeriy » 13 янв 2005, 12:20

genesis
Странно, а причем тут сетевые ОС?
По сути - на VBS объекты создаются так
Set wrd = CreateObject("Word.Application")
а в остальном особых различий нет.
C уважением, Валерий

Активный пользователь
Сообщения: 106
Зарегистрирован: 21 май 2004, 09:26

Сообщение Defence » 14 янв 2005, 18:04

Я тебе дам рабочий кусок кода из книги по WHS. Может поможет :)

'*******************************************************************
' Имя: PrintInWord.vbs
' Язык: VBScript
' Описание: Использование из сценария внешнего объекта
' автоматизации (Microsoft Word)
'*******************************************************************
Option Explicit

Dim WA,WD,Sel ' Объявляем переменные
'Создаем объект--приложение Microsoft Word
Set WA=WScript.CreateObject("Word.Application")
' Можно было использовать конструкцию
' Set WA=CreateObject("Word.Application")

Set WD=WA.Documents.Add 'Создаем новый документ (объект Document)
WA.Visible=true ' Делаем Word видимым
Set Sel=WA.Selection 'Создаем объект Selection
Sel.Font.Size=14 'Устанавливаем размер шрифта
Sel.ParagraphFormat.Alignment=1 'Выравнивание по центру
Sel.Font.Bold=true 'Устанавливаем полужирный шрифт
Sel.TypeText "Привет!" & vbCrLf 'Печатаем строку текста
Sel.Font.Bold=false 'Отменяем полужирный шрифт
Sel.ParagraphFormat.Alignment=0 'Выравнивание по левому краю
'Печатаем строку текста
Sel.TypeText "Эти строки напечатаны с помощью WSH."
'WD.PrintOut 'Выводим документ на принтер
'************* Конец *********************************************

Новый участник
Сообщения: 4
Зарегистрирован: 13 янв 2005, 03:47

Сообщение genesis » 14 янв 2005, 19:24

Valeriy
Дело в том что VBS скрипты для WSH пишут иногда админы для создания своих хитромудростей...потому и полез в эту тему - за оффтоп сорри...

Хоть особых различий нет - но все же...как например на VBS будет выглядеть строчка:
tb0=adoc.tables.Add(Range=myRange, NumRows=1, NumColumns=3); '??

Все все знают но хранят тайну..:))))

Новый участник
Сообщения: 4
Зарегистрирован: 13 янв 2005, 03:47

Сообщение genesis » 14 янв 2005, 19:29

Defence

Спасибо...полезный скриптик....а в этой чудо книжке про создание в Word и Excel таблиц ничего не сказано?? :)

Активный пользователь
Сообщения: 243
Зарегистрирован: 30 июн 2004, 16:18
Откуда: Кировоград (Украина)

Сообщение Valeriy » 16 янв 2005, 23:23

Цитата
Хоть особых различий нет - но все же...как например на VBS будет выглядеть строчка:
tb0=adoc.tables.Add(Range=myRange, NumRows=1, NumColumns=3); '??

Все все знают но хранят тайну..)))
[/quote]

А кому интересно отвечать на элементарные вопросы?
Тебе лень взглянуть в справку и попробовать. Вопросы элементарные.
Все объекты создаются через set

set tb0=adoc.tables.Add(myRange, 1,3)
C уважением, Валерий

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0