gifts2017

Добавление макроса в файл Word из 1С

Опубликовал Юрий Соколов (sokol_5441) в раздел Программирование - Практика программирования

Добавление макроса в файл Word из 1С

Ниже представлен код 1С для добавления макроса в файл Word.

Макрос, который добавляется в данном примере в файл Word сохраняет его при закрытии в файл "НовоеИмяФайла "

Кусок кода, который расположен ниже можно встравлять в любое место когда, где необходимо будет добавление макроса в документ Word.

 

Расположенный ниже код - это всего лишь пример механизма вставки макросов в Word. На основании данного примера можно вставлять любые макросы в документы Word, путем модификации данного примера.

Данный пример может понадобится, например, для сохранения файла ворд в автоматическом режиме в какое-либо другое место после закрытия файла

 

 

 

Ворд = Новый COMОбъект("Word.Application");
ИмяФайла =  "Тест файл1.doc";
НовоеИмяФайла =  "Тест файл2.doc";
ФайлВорд = Ворд.Documents.Open(ИмяФайла ); //Открываем файл

 
Если Не ФайлВорд.ReadOnly Тогда
    Попытка
        ФайлВорд.VBProject.VBComponents("ThisDocument").CodeModule.DeleteLines(1,4);//Удаляем сначала весь код макроса
    Исключение
    КонецПопытки;

    
    ФайлВорд.VBProject.VBComponents("ThisDocument").CodeModule.InsertLines(1, "Private Sub Document_Close()");
    ФайлВорд.VBProject.VBComponents("ThisDocument").CodeModule.InsertLines(2, "FileName = """ + НовоеИмяФайла + """");
    ФайлВорд.VBProject.VBComponents("ThisDocument").CodeModule.InsertLines(3, "ThisDocument.SaveAs(FileName)");
    ФайлВорд.VBProject.VBComponents("ThisDocument").CodeModule.InsertLines(4, "End Sub");
    
    //Word сам сохранит файл в нужное место
Иначе
    Сообщить("Файл открыт только для чтения");
КонецЕсли;

Ворд.Visible = Истина;

Скачать файлы

Наименование Файл Версия Размер
Код 1С.jpg 21
.jpg 115,06Kb
18.04.12
21
.jpg 115,06Kb Скачать
Макрос.jpg 6
.jpg 163,48Kb
18.04.12
6
.jpg 163,48Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. apalon_pss (pavel_pss) 19.04.12 11:36
Поставил плюс за старания и другой способ. :D
Но у тебя есть одна ошибка, ты сдела попытку только на очистку текста макроса, а на добавление не сделал.
Так же использование макросов это класно, но для такого метода использования необходимо чтобы в офисе было обязательно включено в настройках безопасности "доверять доступ к объектной модели проектов vba". Сами макросы можно тогда установить в "отключить все макросы без уведомления". Как это проверить включен ли доступ, я сам еще пока не нашел, нет времени.
8-)
2. Александр Притуленко (evrakylon) 25.04.12 11:32
Плюс за идею. Как раз потребовалось создать много шаблонов active document в Word. Автоматизирую при помощи макросов
3. Яков Коган (Yashazz) 25.04.12 16:52
Для Экселя всё примерно так же?
4. Евген Сок (6630) 17.05.12 07:22
Да меня тоже для Excel Интересует подобная идея?
5. Олег Шалимов (CaSH_2004) 27.06.12 09:09
Уважаемый автор - раскрась код