Макрос для слияния данных при серийной печати рассылок в Excel
Подготовка слияния данных для серийной печати рассылок в Excel
- Таблица с постоянными (не изменяющимися) значениями для информации, которая будет выполнять роль шаблона при многоразовой печати. Например: суть предложения, бланк заказа, отчет, реквизиты фактур Вашей фирмы и т.п. В данном примере эта таблица будет называться «Серийная Таблица».
- Таблица в которой все значения уникальны и подаются для заполнения реквизитов при многоразовой печати. Эти значения будут вставлены в соответственные места Серийной Таблицы. Например: адреса клиентов, имена и фамилии получателей и т.д. В данном примере вторая таблица будет навиваться «Таблица Данных».
Естественно правильно выполнять слияние данных из этих двух таблиц будет реализовано с помощью определенного макроса VBA.
Создание Серийной Таблицы с шаблоном для рассылки
Подготовка данных к серийной печати можно начать из создания любой таблицы. Но мы рекомендуем сначала создать Серийную Таблицу. Ведь она будет содержать больше информации, так как представляет собой форму шаблона с видом, наиболее приближенным к финальному результату. Просто потом его нужно заполнить переменными значениями из Таблицы Данных с помощью макроса.
Сначала создадим лист для серийной печати. Самая упрощенная версия документа, подготовленного к заполнению переменными данными перед серийной печатью, изображена на рисунке:
Несложно догадаться, что ячейки B3, B4, B6 и B7 предназначены для заполнения переменными данными из Таблицы Данных. А в ячейку B9 введем формулу, которая автоматически вычислит сроки реализации заказа с учетом даты его составления. Допустим на строки реализации дается 2 недели, тогда вводим простую формулу: =B3+14.
Подготовка Таблицы Данных с реквизитами для рассылок
На отдельном листе создадим Таблицу Данных, которая будет содержать все переменные значения, подставляемые в соответственные места Серийной Таблицы. На следующем рисунке изображен простой пример Таблицы Данных из серийными переменными значениям:
Так же следует помнить о том, то Таблица Данных должна быть полностью заполнена. Если будет пустая ячейка, тогда будет опущено значение. А если будет пустая целая строка, тогда будет прервана серия печати. Положение Таблицы Данных не обязательно должно начинаться с ячейки A1. Ее адрес расположения укажем в VBA-коде макроса.
Также важно учитывать тот факт, что листы обеих таблиц должны находиться в одной рабочей книге Excel. Для функционирования кода макроса не важно будут ли в этой книге находиться другие листы. Так же на данном этапе для макроса не играют особой роли названия листов. После переименования названий листов, просто следует указать их имена в коде макроса.
Слияние данных обеих таблиц в Excel с помощью макроса
Заполнение серийной таблицы значениями, собранными в Таблице Данных выполнить за нас программа VBA-макроса. Для этого откройте редактор Visual Basic (ALT+F11) и создайте модуль: «Insert»-«Module», чтобы в него записать этот код макроса:
Когда макрос Excel пройдет по всем циклам, тогда можно вызвать окно сообщения (MsgBox) о количестве напечатанных документов. То есть сколько было выполнено непрерывных циклов в процессе выполнения кода.
В макросе используются еще 2 переменные с адресами диапазонов ячеек:
- DiapazS – содержит адрес на несмежный диапазон ячеек для Серийной Таблицы, в которую будут вводиться переменные значения.
- DiapazD – содержит адрес на смежный диапазон ячеек для Таблицы Данных из которой будут браться переменные значения для заполнения.
Чтобы более-менее было удобно приспособить функционирование макроса к изменениям таблиц на листах, адреса на диапазоны ячеек подаются в текстовых переменных AdresRekvizitov и AdresDannye. Благодаря функции Range значения этих переменных из типа строки (As String) преобразуются в тип адреса (As Range):
Такой подход к построению макроса имеет определенные преимущества. Можно свободно редактировать и изменять адреса диапазонов для обеих таблиц при их изменении размера или структуры:
Код макроса содержит некоторую информацию о структуре данной рабочей книги Excel: размещение исходных данных и целевых, а также названия листов. Сами названия листов указаны в строковых переменных NameListSerii и NameListDannye.
Естественно можно использовать другие названия листов, только не забывайте соответственно отредактировать значения в строках для этих переменных:
В том случаи если изменились размеры или адреса диапазонов таблиц на этих листах просто отредактируйте значение в соответственных переменных.
На этапе тестирования макроса нет необходимости рисковать ошибочной печатью документов и тратит офисные листы бумаги. Достаточно лишь поменять строку кода:
на временную строку которая включит режим предварительного просмотра:
В таком режиме макрос Excel не будет направлять данные на принтер, а просто выведет документ на предварительный просмотр печати.
Процесс слияния данных и серийной печати рассылок из Excel
Когда уже создадите и заполните все таблицы необходимыми значениями, можно запустить свой макрос для серийной печати. Нажимаете комбинацию клавиш (ALT+F8) из списка в появившемся окне выбираем имя макроса «PechatSerii» и нажимаем на кнопку «Выполнить».
Циклы инструкций кода сразу проходят по всем строкам Таблицы Данных и поочередно вводят собранные значения из ячеек строк в соответственные ячейки Серийной Таблицы. После заполнения каждого комплекта данных выполняется печать готового текущего документа.
Данный процесс повторяется ровно столько раз сколько строк содержит Таблица Данных. После завершения действия макроса выводиться сообщение с информацией о завершении генерации документов и о их количестве отправленных на печать:
После завершения действия макроса Серийная Таблица будет содержать данные полученные из последней строки Таблицы Данных. Как показано ниже на рисунке:
Таким образом у нас получилось автоматизировать большой объем роботы с помощью макроса и без использования программы Word.
Полное руководство по email-рассылкам — Маркетинг на vc. ru
- Таблица с постоянными (не изменяющимися) значениями для информации, которая будет выполнять роль шаблона при многоразовой печати. Например: суть предложения, бланк заказа, отчет, реквизиты фактур Вашей фирмы и т.п. В данном примере эта таблица будет называться «Серийная Таблица».
- Таблица в которой все значения уникальны и подаются для заполнения реквизитов при многоразовой печати. Эти значения будут вставлены в соответственные места Серийной Таблицы. Например: адреса клиентов, имена и фамилии получателей и т.д. В данном примере вторая таблица будет навиваться «Таблица Данных».
Александр, да можно. Только для этого либо Excel должен быть постоянно запущен, либо при открытии определенного файла будет идти проверка текущей даты и если дата больше-равна требуемой — то вызов кода отправки письма.