Страница 1 из 1

EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 24 апр 2009, 14:50
anval
Имеется WORD-ий шаблон некоторого документа. Нужно в макросе EXCEL создать WORD-ий документ на основе этого шаблона. Как это сделать?

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 24 апр 2009, 15:50
Aent
Вариант с поздним связыванием

Код: Выделить всё

Dim WordObj as Object
Dim WordDoc as Object
On Error Resume Next
Set WordObj = GetObject(, "Word.Application")
if Err.Number <> 0 then
    'Нет экземпляра  Word.Application, создадим его
    Err.Clear
    Set WordObj = CreateObject("Word.Application")
end if 
Set WordDoc = WordObj.Documents.Add(ThisWorkbook.Path + "\Patter.dot".dot", False)
if Err.Number <> 0 then
    'Ошибка при создании документа. Возможно неверно имя шаблона или путь к нему 
end if
'В данный момент документ скрыт. Осуществляем если нужно подстановку
'Используйте для этого Закладки или Поля
On error goto 0
.......
WordObj.Visible = True ' Показываем Word
Set WordDoc = Nothing

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 27 апр 2009, 14:21
anval
Aent,
большое спасибо, все получилось. Только непонятно, почему антивирус Касперского реагирует проактивной защитой на команду
"Set WordObj = GetObject(, "Word.Application")"
("Проактивная защита: Тревога
Внимание!
Потенциально опасное ПО(модификация):
...
Действие
Обнаружена опасная макрокоманда. Рекомендуется завершить работу скрипта, содержащую данную компнду. Подробно..."

а команду
"Set WordObj = CreateObject("Word.Application")"
свободно пропускает.

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 27 апр 2009, 14:56
Aent
Anval, по тому что в КAV страдает некоторой параноей.
Он считает что оператор GetObject больше свойственен коду макровирусов.
(Cовершенно кстати напрасно)
Добавьте вашу книгу или папку с ней в исключения
Настройка->Параметры->Исключения->Доверенная зона

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 28 апр 2009, 14:31
anval
Aent, спасибо, все получилось

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 05 май 2009, 08:50
anval
Еще вопрос в продолжение темы.
Схема работы макроса такая: работаем с EXCEL-евской книгой, активным является окно, в котором представлена эта книга, в какой-то момент вызывается макрос, который загружает WORD-ий шаблон (о нем вопрос был выше). Шаблон загружается, но окно, в котором расположился WORD (выбран режим "WordObj.Visible = True") -старое, если WORD уже был загружен, или вновь образованное, находится где-то на заднем плане. Как переместить это окно на передний план? Спасибо.

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 05 май 2009, 10:07
Aent
Надо воспользоваться методом Activate для Word

Код: Выделить всё

....
WordObj.Activate
....

Re: EXCEL-создать Word-ий файл по заданному шаблону

Добавлено: 06 май 2009, 09:45
anval
Aent, спасибо, все отлично.

What hosting to choose?

Добавлено: 14 окт 2015, 06:40
GeorgeSoca
На нашем сайте вы можете чувствовать себя в безопасности! Кроме того, мы используем зеркальные жесткие диски на все наши серверы, поэтому мы также взять резервную два раза в день на отдельных серверах. Мы используем ISPmanager, как на панели управления. ISPmanager является панель управления, которая позволяет легко управлять своей веб-сайт. С нами вы можете разместить столько веб-сайты и домены, которые вы хотите для учетной записи хостинга.
virtual hosting