Константин ВЕСЕЛКОВ
Источник: Журнал "Бухгалтер и Компьютер" №2 2004г
Рассмотрим ситуации , при которых возникает потребность в индивидуальной рассылке. Например, руководство компании “Ваши друзья” решило, что пора уделять своим клиентам повышенное внимание. Одним из шагов этой культурной программы стали индивидуальные поздравления, скажем, с днём рождения, и их соответствующая рассылка. Макет такого поздравления — файл “Образец поздравления.doc” — уже разработан (рис. 1).
Для окончательного формирования поздравлений в текст каждого письма нужно добавить именное обращение (например, “Уважаемая Лариса Ивановна!” и т. п.).
Как решить такую задачу? Первое, что приходит в голову, — просто взять и отредактировать вручную нужное число строк, страниц. Но этот способ хорош, если нужно разослать письмо по трём–пяти адресам. А если, например, их больше сотни? Кроме того, при большом числе адресатов полезно задаться вопросом: а сколько всего времени нужно потратить на эту работу (с учётом проведения повторных рассылок и возможности ошибок в макете)? И вообще, как контролировать сам факт включения конкретного клиента в рассылку, ведь в нашем случае текст письма не содержит даже фамилии адресата.
Вот тут и появляются мысли о необходимости автоматизировать эту рутинную работу при минимальных затратах. Оказывается, возможность сделать всё нам необходимое без привлечения программистов уже давно (по крайней мере начиная с MS Word 6.0) встроена в MS Office, но, что удивительно, знают о ней далеко не многие, в том числе даже опытные пользователи. Называется эта возможность “слияние документов”. В статье данная функция иллюстрируется на примере применения MS Office 2000.
Сразу оговоримся, что подготовка рассылки с использованием слияния также требует выполнения определённого объёма работ (в основном — по подготовке данных), но при этом выгодно отличается от “ручного” редактирования файла следующим:
» можно достаточно точно определить временн€ые затраты на подготовку рассылки;
» замена или исправление макета документа не приводит к катастрофической потере времени;
» список рассылки существует в виде отдельного документа, что значительно упрощает контроль за её осуществлением;
» сформированный список рассылки может использоваться многократно (например, для регулярного поздравления адресатов со всеми праздниками; для регулярной рассылки счетов и т. д.).
Как работает режим слияния документов
Для получения итогового документа требуется список рассылки, а также основной документ слияния, играющий роль шаблона.
Список рассылки может храниться в виде таблицы Word, таблицы HTML, текста либо таблицы данных СУБД — MS Access, dBase, FoxPro или любой другой СУБД, для доступа к которой на вашем компьютере есть драйвер ODBC (Open Database Connectivity — открытый интерфейс доступа к базам данных; драйвер ODBC — модуль, который применяет функции ODBC, позволяющие прикладной программе взаимодействовать с СУБД). Мы рассмотрим хранение списка рассылки не в СУБД, а в файле MS Excel. Такой вариант, на наш взгляд, оптимален, потому что, во-первых, не требует от пользователя специальных знаний теории хранения данных и, во-вторых, потому что MS Excel сам по себе обладает большим набором удобных средств обработки и визуального представления данных (таких, например, как фильтрация или сортировка). Однако при выборе среды для хранения данных нужно также помнить и об определённых ограничениях, имеющихся в MS Excel. В частности, один лист Excel (сразу определимся с терминами: книга MS Excel — это файл, используемый для обработки и хранения данных; в свою очередь книга состоит из нескольких листов) не может содержать более 65 536 строк, так что если поздравительный список ваших знакомых (клиентов, избирателей) превышает это число и его не удаётся логически разделить на более мелкие фрагменты, то для хранения такого объёма данных необходимо будет использовать уже какую-либо СУБД.
Основной документ слияния создаётся в MS Word. В его текст включаются поля, соответствующие столбцам из списка рассылки (“поля слияния”).
При проведении слияния для каждой строки из списка рассылки поочерёдно выполняются следующие действия:
» поля макета заполняются значениями из очередной строки;
» заполненный макет добавляется в конец результирующего документа.
На рис. 2 изображён пример списка рассылки в формате книги MS Excel. Нужно заметить, что подготовка списка рассылки — это, как правило, наиболее трудоёмкая операция. Информацию о клиентах нужно выверить, очистить от “мусора”, грамотно разделить по столбцам. При разделении на столбцы следует помнить, что поле слияния в макете документа соответствует столбцу в списке. В примере на рис. 2 столбцы “Компания”, “Фамилия_И_О”, “Индекс”, “Страна_Город” и “Адрес” будут использоваться для решения другой задачи — надпечатки почтовых конвертов, в которые будет вкладываться именное поздравление.
Советы по формированию списка в MS Excel
В MS Excel используется большое количество различных логических правил и умолчаний, зачастую скрытых от пользователя. Поэтому, чтобы формируемый вами список был пригоден для проведения процедуры слияния, рекомендуется соблюдать ряд правил, которые мы приводим ниже.
1. Левый верхний угол списка данных должен размещаться в левом верхнем углу (в ячейке A1) листа.
2. Названия столбцов данных размещаются в первой строке листа. Формат ячеек в первой строке нужно установить в “Текстовый” (меню Формат ® Ячейки...). В названиях столбцов не рекомендуется использовать пробелы, запятые, кавычки.
3. Для форматирования списка нельзя использовать полностью (по всем позициям) пустые строки или полностью пустые столбцы. Пустая строка или столбец воспринимаются Excel как конец списка!
4. Если суть данных такова, что в них могут содержаться пустые значения, нужно присвоить списку имя. Для этого необходимо выделить соответствующий диапазон, содержащий данные списка, через пункт меню Вставка ® Имя ® Присвоить... открыть диалог присвоения имени и ввести имя диапазона, используя латиницу (например, Database). Рекомендуем присваивать имя диапазону столбцов, иначе при добавлении в список новых строк придётся каждый раз изменять границы диапазона.
5. На том листе, где размещён список рассылки (рис. 2, лист “База данных”), не следует размещать другие данные.
6. Для всех ячеек списка целесообразно установить текстовый формат (если это невозможно, то по крайней мере — один и тот же формат ячеек внутри каждого столбца данных).
7. Текстовые данные не должны содержать непарные (незакрытые) кавычки.
8. Текстовые данные не должны содержать пробелы перед началом текстовой строки.
В ходе преобразования уже имеющихся данных в формат списка, пригодный для проведения слияния, наверняка придётся использовать функции текстовой обработки строк. Так, некоторые столбцы могут содержать вычисляемые при помощи формул значения, поэтому перед проведением слияния рекомендуем заменить в таких столбцах формулы на сами значения. Для этого нужно выделить заменяемый (содержащий формулы) диапазон, скопировать его (Ctrl+Ins или пункт меню Правка ® Копировать) и вставить на прежнее место, используя пункт меню Правка ® Специальная вставка... В диалоге Специальная вставка, который откроется при выборе этого пункта меню, нужно выбрать вариант Значения.
Формирование основного документа слияния
Продолжим разбор примера. Рассмотрим шаги по формированию основного документа слияния с использованием готового макета поздравления.
Шаг 1. Преобразование обычного файла в основной документ слияния. Откроем файл, содержащий макет поздравления (файл “Шаблон поздравления.doc”). Используя пункт меню Сервис ® Слияние... откроем диалог слияния и нажмём кнопку Создать. В выпадающем меню выберем Документы на бланке... После этого на экране возникнет ещё один диалог, в котором нужно нажать кнопку Активное окно (при создании макета документа “с нуля” нужно нажать кнопку Создать основной документ). Закроем диалог слияния и посмотрим на изменение управляющего интерфейса Word. Обратим внимание на то, что в панели инструментов появилась новая панель (Слияние). Вернёмся к диалогу слияния (пункт меню Сервис ® Слияние... или кнопка в панели инструментов).
Шаг 2. Получение данных. В диалоге Слияние нажмём кнопку Получить данные и в выпадающем меню выберем пункт Открыть источник данных (рис. 3).
В диалоге открытия источника данных выберем тип файла, в котором содержится список (в нашем примере — “Книги MS Excel (*.xls)”) и сам файл (у нас — файл “Поздравления.xls”). После этого на экране появится диалог выбора диапазона в книге Excel. Если в книге Excel только один лист, а на листе — только один список, то в диалоге нужно выбрать пункт “Весь лист”. Если список был ранее обозначен именем (например, Database) — нужно выбрать это имя.
Закроем диалог слияния. Теперь в панели инструментов стала доступна кнопка Добавить поле слияния. Если её нажать, то в выпадающем списке будут отображаться поля слияния, соответствующие столбцам данных из списка (сравните со списком на рис. 2).
Шаг 3. Вставка полей слияния в основной документ. Для вставки поля слияния в основной документ нужно подвести курсор к позиции, в которой требуется его разместить, и выбрать нужное поле кнопкой Добавить поле слияния (рис. 4). Выбрать шрифт для отображения поля можно обычным способом.
В нашем примере нужно поместить поле Обращение между рисунком и строкой “Поздравляем Вас с днём рождения” и установить для поля тот же шрифт, что и для текста поздравления.
Подготовка основного документа слияния завершена. После сохранения документа его можно закрыть. При повторном открытии связь с источником данных устанавливается автоматически, а в панели инструментов отображается панель “Слияние”. Обратите внимание, что в основном документе сохраняется информация о каталоге, в котором должен размещаться файл источника данных. Если этот файл был удалён или перемещён, при открытии документа появится сообщение об ошибке.
Выполнение процедуры слияния
Шаг 4. Входная проверка. Перед формированием итогового документа полезно посмотреть на то, как он будет выглядеть. После выполнения шага 2 в панели инструментов стали активными кнопки навигации (рис. 5), позволяющие вам, перемещаясь между строками списка, просматривать внешний вид соответствующих страниц итогового документа.
Кнопка используется для переключения между режимами отображения названий полей/значений полей.
Нужно проверить внешний вид итогового документа для строк списка, в которых содержатся самые длинные и самые короткие строки. Кроме того, следует проверить соответствие общего количества страниц в итоговом массиве документов общему количеству строк в списке. Обратите внимание, что, если длина поля в основном документе не совпадает с длиной соответствующей строки в списке, в итоговом документе страницы могутсбиваться (и тогда там могут возникать дополнительные, “сбойные” страницы). Способ разрешения таких проблем — использование более мелкого шрифта для отображения поля в Word, либо изменение внешнего вида основного документа, либо изменение длины конкретного текстового значения в списке.
Шаг 5. Объединение. Для запуска процедуры слияния нажмём кнопку Объединить... (она доступна через панель инструментов и через диалог слияния). На экране возникнет диалог управления слиянием (рис. 6).
Через диалог можно отобрать диапазон строк списка, который будет выведен в результирующий документ, а также выбрать назначение слияния: в новый документ, напрямую на принтер, напрямую в электронную почту. При помощи кнопки Отбор записей можно ввести логические правила для отбора строк из списка. Выберем Новый документ и нажмём кнопку Объединить.
Происходит автоматическое формирование итогового документа. Название документа по умолчанию выбирается также автоматически, с учётом числа попыток объединения (“Формы1”, “Формы2”, “Формы3” и т. д.).
Шаг 6. Выходной контроль. Завершив формирование документа, его нужно переименовать и сохранить. Рекомендуем повторить действия шага 4.
И вот итоговый документ с поздравлениями сформирован. Последнее, что осталось сделать, — распечатать его, вложить в конверты и разослать адресатам. При этом подготовка файла для надпечатки конвертов проводится аналогичным способом.
Статья получена: Клерк.Ру