Створення документа Word із таблиці Excel, Макроси Excel
Макрос призначений для програмного створення документів Word на основі шаблону
(без використання функції злиття вWord )
У прикріпленому до статті архіві знаходяться 2 файли:
- шаблон договору у форматі Microsoft Word (розширення .dot )
- файл Excel з макросом
Налаштування макросу задаються у коді:
Const Ім'яФайлуШаблона = "шаблон.dot" Const КількістьОброблюванихСтовпців = 8 Const РозширенняФайлів = ".doc"
При натисканні кнопки запуску макрос на основі шаблонуdot створює черговий файл, і в цьому документі здійснює заміну тексту ("коду поля") з першого рядка файлу Excel на значення поля (з чергового рядка з даними файлу Excel)
Папка для сформованих документів створюється автоматично, і містить в імені поточну дату і час (наприклад, створена папка називатиметьсяДоговори, сформовані 01-05-2011 в 15-03-24 )
Імена створюваних файлів формуються об'єднанням полів прізвище, ім'я та по батькові, з додаванням розширення doc
PS: Макрос був написаний досить давно, коли я тільки починав вивчати VBA - так що код недостатньо універсальний.
Але як приклад, мабуть, підійде (якщо вам потрібен більш функціональний макрос, скористайтеся універсальною надбудовою (див. нижче))
Ознайомтеся також з універсальною надбудовою формування документів за шаблонами, яка може робити все те саме, що і ця програма, тільки в якості шаблонів можуть виступати, крім документів Word, ще текстові файли, і книги Excel.
За наведеним вище посиланням програма заповнення документів Word з Excel доступна для безкоштовного скачування.
Увага: прохання про доопрацювання макросу, описаного в цій статті, не приймаються.
Є нова (універсальна) версія - у якій вже є практично все, що може знадобитися.
Коментарі
Спасибі, за макрос, не могли б підказати що в ньому змінити що б оброблявся тільки той рядок у якому виділений осередок?
Дякую за макрос. Дуже допоміг у роботі.
Цей макрос не підтримується. Використовуйте нову (розширену) версію програми - там все працює без помилок.
Макрос видає помилку (Type mismatch (Error 13)) при обробці комірки з формулою, підкажіть будь ласка, як вирішити цю проблему?
Вітаю. Дякую вам за цей макрос, який допоміг мені у роботі. Не могли б ви ще підказати як зробити щоб у шаблон Word прописувалися дані з кількох (різних) рядків Excel? Заздалегідь дякую.
Підкажіть. а можна зробити щоб макрос обробляв тільки ті рядки, в яких стоїть номер договору, а якщо порожньо пропускав?
Ознайомився із програмою. Серйозний працю. Знімаю шляпу. Але мені сподобався саме цей макрос. З колонтитулами я розібрався - виявилося нічого складного, та й сам макрос обріс уже купою доробок. Затягнуло, чи знаєте ))
Євгене, скористайтеся універсальною програмою для заповнення документів Word - там реалізована підстановка значень у колонтитули
Добридень! Макрос дуже допоміг у роботі. Доробив його трохи під свої потреби: виведення у різні шаблони документів word за різних значень у excel. Залишилося одне питання - в сам документ word текст вставляється відмінно, а ось у колнтитули - ні: (Підкажіть, будь ласка, як це виправити?
Вова, якщо немає грошей на замовлення, є тільки 2 варіанти: 1) розібратися в цих макросах, і зробити самому (благо,прикладів подібних макросів в інтернеті достатньо) 2) звернутися за допомогою на будь-який з форумів по Excel (але, знову ж таки, якщо з вашого боку ніяких напрацювань немає, навряд чи хтось зробить всю роботу за вас)
А якщо в цьому макросі зробити так щоб він заміняв дання спочатку з рядка активного осередку, а потім якщо один з осередків наступного рядка = осередку з попереднього рядка знову вставляв у ворд документ поля, що замінюються, і знову робив заміну, і так до моменту коли одна з осередків не буде раван вічку з наступних, рядки тогад макрос за цією умовою не вставляє замінні поля а просто зберігає ворд документ. Тобто допустимо мені потрібно створити документ ворд по одному з людей дання по якому є в декількох рядках. Будь ласка допоможіть дуже потрібно, просто немає грошей на замовлення.
Вова, в цьому випадку універсальне рішення зробити не вийде - занадто багато можливих варіантів розташування даних в Excel, і способів заповнення документів Word. Оформляйте замовлення на сайті - зроблю вам макрос під ваші вимоги.
Підкажіть будь ласка, як зробити так, щоб макрос формував один документ ворд на основі даних з кількох рядків Excel?
А як реалізувати ті самі можливості, лише використовуючи функцію злиття у Word. Щоб щоразу не формувався новий документ, а запис робився на новій сторінці?
Тепер доступна нова версія універсальної програми формування документів за шаблонами.
Програма дуже зручна для швидкого створення договорів та наказів, заповнення актів та інструкцій, друку листів та угод, заповнення дорожніх листів та повідомлень, роздруківки протоколів та угод, підстановки даних у шаблони заяв та довіреностей.
Кількість файлів-шаблонів (Word, Excel, TXT) необмежена.
Безкоштовно завантажити та протестувати програму можна за цим посиланням:http://excelvba.ru/programmes/FillDocuments
чи можна з кожного запису сформувати 2 документи word?