Если ваш документооборот предполагает заполнение форм документов в формате Word, а ряд исходных данных храниться в Excel, то наверняка возникал вопрос:
- Как создать документ Word из данных Excel файла?
Один из примеров, демонстрирующий прием создания нового документа Word на основе шаблона рассмотрим сегодня в обзоре 😉
📢 Файл с примером размещен в конце статьи 🔽
▶️ Пример исходных данных
Для целей данного примера рассмотрим пример заполнения бланка письма на основании данных справочника контактов:
Форму бланка письма формируем и заполняем в формате Excel из данных справочника:
В рамках рассматриваемого примера предполагается, что при выборе контрагента в ячейке С3 данные письма, такие как: должность, ФИО и обращение, заполняются автоматически:
🔸 Пример того, как реализована данная возможность см. в приложенном файле
Кроме того, мы также заранее предусмотрели возможность изменить имя каждого нового файла.
▶️ Формирование шаблона
Немаловажным этапом является правильное создание шаблона Word.
Чтобы подготовить шаблон следует:
- открыть документ Word и проверить разметку полей. Во избежание сдвигов рекомендуем придерживаться одинаковой разметки полей документов.
- копируем нужную область письма из книги Excel (в нашем случае это диапазон B6:D18)
- добавляем копию выбрав в параметрах вставки "Связать и сохранить исходное форматирование":
🔔 Чтобы проверить, что связь установлена корректно внесите несколько изменений в документ Excel. Внесенные изменения должны тут же отражаться в файле Word:
▶️ Как создавать новый документ Word на основе шаблона (пример макроса)
Для автоматизации процесса создания нового документа Word на основе шаблона и сохранения его под новым именем рассмотрим следующий макрос:
▶️ Краткое описание
🔘 Объявляем переменные:
- Dim objWord As Object: тип объекта, который будет использоваться для управления приложением Word.objWord
- Dim File_Name As String: сохранение имени файла из Excel.File_Name
- Dim FileSt As String: в качестве пути к файлу для существующего документа Word.FileSt
- Dim FileNew As String: в качестве пути к файлу для создаваемого нового документа Word.FileNew
- Dim MyLink As Object: объект, который будет использоваться при обновлении и отмене связи со всеми полями в документе Word.MyLink
🔘 Как это работает:
- Set objWord = CreateObject("Word.Application"): эта строка создает экземпляр приложения Word.
- File_Name = Range("C2").Value: извлекаем имя файла из ячейки активного листа Excel (в рассмотренном примере - C2)
- FileSt = "C:\...": указываем путь к существующему документу Word.
- FileNew = "C:\..." & File_Name & ".docx": указываем новый путь к создаваемому документу Word, объединяя расположение и имя файла.
- objWord.Documents.Open FileSt: открываем существующий документ Word.
- Цикл обновляет и отсоединяет все поля в документе Word.
- objWord.ActiveDocument.SaveAs ...: сохраняем обновленный документ как новый документ Word в указанном расположении.
- objWord.Quit: выход из приложения Word.
🔔 Помните, что вам нужно ссылаться на библиотеку объектов Microsoft Word:
▶️ Тестируем результат
Рассмотренный прием позволяет настроить процесс автоматизации работы с документами между Excel и Word:
📝 В заключении отметим, что рассмотренный пример является типовым (и не единственным) решением, и может быть дополнен или изменен в зависимости от условий конкретной задачи.
➡️ Ознакомиться с другими методами и приемами работы позволяющими автоматизировать работу в Excel вы можете в наших предыдущих обзорах 🔽
🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:
✅ СКАЧАТЬ ПРИМЕР 🔽