EXCEL-создать Word-ий файл по заданному шаблону
Модератор: Naeel Maqsudov
Имеется WORD-ий шаблон некоторого документа. Нужно в макросе EXCEL создать WORD-ий документ на основе этого шаблона. Как это сделать?
- Aent
- Сообщения: 1108
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Вариант с поздним связыванием
Код: Выделить всё
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
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent,
большое спасибо, все получилось. Только непонятно, почему антивирус Касперского реагирует проактивной защитой на команду
"Set WordObj = GetObject(, "Word.Application")"
("Проактивная защита: Тревога
Внимание!
Потенциально опасное ПО(модификация):
...
Действие
Обнаружена опасная макрокоманда. Рекомендуется завершить работу скрипта, содержащую данную компнду. Подробно..."
а команду
"Set WordObj = CreateObject("Word.Application")"
свободно пропускает.
большое спасибо, все получилось. Только непонятно, почему антивирус Касперского реагирует проактивной защитой на команду
"Set WordObj = GetObject(, "Word.Application")"
("Проактивная защита: Тревога
Внимание!
Потенциально опасное ПО(модификация):
...
Действие
Обнаружена опасная макрокоманда. Рекомендуется завершить работу скрипта, содержащую данную компнду. Подробно..."
а команду
"Set WordObj = CreateObject("Word.Application")"
свободно пропускает.
- Aent
- Сообщения: 1108
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Anval, по тому что в КAV страдает некоторой параноей.
Он считает что оператор GetObject больше свойственен коду макровирусов.
(Cовершенно кстати напрасно)
Добавьте вашу книгу или папку с ней в исключения
Настройка->Параметры->Исключения->Доверенная зона
Он считает что оператор GetObject больше свойственен коду макровирусов.
(Cовершенно кстати напрасно)
Добавьте вашу книгу или папку с ней в исключения
Настройка->Параметры->Исключения->Доверенная зона
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, спасибо, все получилось
Еще вопрос в продолжение темы.
Схема работы макроса такая: работаем с EXCEL-евской книгой, активным является окно, в котором представлена эта книга, в какой-то момент вызывается макрос, который загружает WORD-ий шаблон (о нем вопрос был выше). Шаблон загружается, но окно, в котором расположился WORD (выбран режим "WordObj.Visible = True") -старое, если WORD уже был загружен, или вновь образованное, находится где-то на заднем плане. Как переместить это окно на передний план? Спасибо.
Схема работы макроса такая: работаем с EXCEL-евской книгой, активным является окно, в котором представлена эта книга, в какой-то момент вызывается макрос, который загружает WORD-ий шаблон (о нем вопрос был выше). Шаблон загружается, но окно, в котором расположился WORD (выбран режим "WordObj.Visible = True") -старое, если WORD уже был загружен, или вновь образованное, находится где-то на заднем плане. Как переместить это окно на передний план? Спасибо.
- Aent
- Сообщения: 1108
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Надо воспользоваться методом Activate для Word
Код: Выделить всё
....
WordObj.Activate
....
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, спасибо, все отлично.
-
- Сообщения: 0
- Зарегистрирован: 12 окт 2015, 04:09
- Откуда: Guam
- Контактная информация:
На нашем сайте вы можете чувствовать себя в безопасности! Кроме того, мы используем зеркальные жесткие диски на все наши серверы, поэтому мы также взять резервную два раза в день на отдельных серверах. Мы используем ISPmanager, как на панели управления. ISPmanager является панель управления, которая позволяет легко управлять своей веб-сайт. С нами вы можете разместить столько веб-сайты и домены, которые вы хотите для учетной записи хостинга.
virtual hosting
virtual hosting