Как сделать автозаполнение в word
АВТОМАТИЗАЦИЯ ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, ЧАСТЬ 4: ПЕРЕНОС ДАННЫХ В WORD
В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфейс приложения, организовать проверку вводимых данных и получить число прописью без использования кода VBA. В этой, заключительной статье речь пойдет о волшебстве - переносе всех необходимых значений из рабочей книги Excel в документ Word. Давайте я покажу Вам то, что должно получиться в итоге:
Описание механизма
Для начала в общих чертах опишу, каким именно образом будет происходить перенос данных в документ Word. Прежде всего, нам понадобится шаблон документа Word, содержащий всю разметку, таблицы и ту часть текста, которая будет оставаться неизменной. В этом шаблоне необходимо определить места, в которые будут подставлены значения из рабочей книги Excel, - удобнее всего это сделать с помощью закладок. После этого необходимо упорядочить данные Excel таким образом, чтобы обеспечить соответствие шаблону Word, ну и в последнюю очередь - написать саму процедуру переноса на VBA.
Создание шаблона документа Word
Тут все предельно просто - создаем обычный документ, набираем и форматируем текст, в общем, добиваемся того, чтобы получить необходимую форму. В тех местах, куда необходимо будет подставить значения из Excel нужно создать закладки. Это делается следующим образом:
- Для удобства поддержки напечатать в нужном месте название закладки. Я еще и заключил названия в угловые скобки, так что получилось, например, вот так: <DocumentDate> для закладки, содержащей дату документа.
- Выделить все название закладки (в моем случае вместе с угловыми скобками), перейти на вкладку "Вставка" и нажать кнопку "Закладка":
Таким образом нужно будет создать все закладки, то есть отметить все места, куда будут вставлены данные из Excel. Получившийся файл нужно сохранить как "Шаблон MS Word" с помощью пункта меню "Файл" -> "Сохранить как. ".
Подготовка данных Excel
Я решил для удобства поместить все данные, которые необходимо перенести в документ Word, на отдельном рабочем листе с названием Bookmarks - закладки. На этом листе два столбца: в первом содержатся названия закладок (в точности так, как они названы в документе Word), а во втором - соответствующие значения, подлежащие переносу.
Часть этих значений получена напрямую из листа ввода данных, а часть - из вспомогательных таблиц, расположенных на листе Support . В этой статье я не буду разбирать формулы, рассчитывающие нужные значения, если что-то будет непонятно - задавайте вопросы в комментариях.
На этом этапе важно правильно указать все названия закладок - от этого зависит правильность переноса данных.
Процедура переноса
А вот это - самое интересное. Существует два варианта выполнения кода переноса данных:
- Код выполняется в рабочей книге Excel, данные передаются в Word по одному значению за раз и сразу же размещаются в документе.
- Код выполняется в отдельном документе Word, все данные передаются из Excel одним пакетом.
С точки зрения скорости выполнения, особенно при большом количестве закладок, второй вариант выглядит гораздо привлекательнее, однако требует более сложных действий. Именно его я и использовал.
- Создать шаблон документа Word с поддержкой макросов. В этом шаблоне будет содержаться выполняемый код на VBA.
Почему нужно создать именно шаблон? Таким образом можно защитить программный код от неумышленного изменения. Дело в том, что каждый раз при открытии шаблона создается новый файл Word, сохранить который поверх существующего шаблона просто так не получится. Сам шаблон при этом остается неизменным.
Текст процедуры я приводить в статье не буду - его можно легко посмотреть в файле FillDocument.dotm , расположенном в папке Template в архиве с примером.
Как же воспользоваться всем этим для решения именно Вашей задачи?
Понимаю, что на словах это все выглядит очень просто, но что же получается на деле? Я предлагаю Вам просто воспользоваться уже готовым вариантом. Скачайте архив с примером, в рабочей книге Excel нажмите комбинацию клавиш Alt+F11, чтобы открыть редактор Visual Basic и прочитайте все мои комментарии к программе. Для того, чтобы изменить программу под свои нужды Вам понадобится всего лишь изменить значение нескольких констант, они вынесены в самое начало программы. Весь текст программы Вы можете свободно скопировать в свой проект.
Структура архива
В архиве, приложенном к этой статье, содержится несколько файлов.
Основной файл - рабочая книга Excel с названием "Создание подтверждений". В этой рабочей книге 4 рабочих листа, из которых отображаются только два: "Input" - лист ввода данных и "Database" - архив всех введенных документов.
В папке Templates находятся шаблоны документов Word. Один из них - шаблон, содержащий программу заполнения закладок, а второй - форма для заполнения. Вы можете использовать без изменений шаблон с программой, но форму для заполнения, естественно, придется переделать в соответствии с Вашими нуждами.
Как переработать пример "под себя"?
Я рекомендую придерживаться следующей последовательности действий:
- Подготовить шаблон документа Word, который необходимо заполнить. Создать в нем все необходимые закладки и сохранить как "шаблон MS Word".
- Скопировать в папку с подготовленным шаблоном файл FillDocument.dotm из архива, приложенного к этой статье. Этот файл отвечает за заполнение закладок шаблона, и в нем ничего менять не нужно.
- Подготовить рабочую книгу Excel для ввода данных. Вам решать, будет ли она обладать каким-либо "продвинутым" пользовательским интерфейсом и осуществлять разные хитрые расчеты. Главное, чтобы в ней содержался рабочий лист с таблицей соответствия имени закладки в шаблоне Word и значения, которое нужно подставить.
- Вставить в подготовленную рабочую книгу код программы на VBA из файла-примера. Заменить все константы в соответствии с Вашим проектом.
- Протестировать правильность работы.
- Активно пользоваться!
Вместо заключения
Статья, если честно, получилась какой-то путаной и, наверное, не очень понятной, поэтому я жду Ваших вопросов по поводу работы кода, формул или механизма в целом в комментариях к ней.
Другие статьи из цикла:
По этой ссылке Вы перейдете на сайт Microsoft SkyDrive, где Вам будет предложено скачать файл Confirm.rar - это и есть архив приложения.
0 коммент.:
Реклама
Архив блога
Ярлыки
Recent
Popular Posts
В предыдущих статьях цикла "Автоматизация заполнения документов" я рассказал о том, как сформировать пользовательский интерфе.
Хотите свободно говорить на английском? Есть вещи, которые нужно выучить назубок! Основные неправильные глаголы английского языка: .
Чтобы создать в Word форму, которую смогут заполнять другие люди, начните с шаблона или документа и добавьте элементы управления содержимым. К таким элементам относятся, например, флажки, текстовые поля, элементы выбора даты и раскрывающиеся списки. Если вы знакомы с базами данных, вы можете даже связывать элементы управления содержимым с данными.
Отображение вкладки "Разработчик"
Если вкладка "Разработчик" не отображается на ленте, см. отображение вкладки "Разработчик".
Открытие шаблона или пустого документа, на основе которого будет базироваться форма
Чтобы сэкономить время, начните с шаблона формы или начните с нуля с пустого шаблона.
Перейдите в папку >файл.
В области Поиск шаблонов в Интернетевведите Forms или тип формы и нажмите ввод.
Перейдите в папку >файл.
Выберите Пустой документ.
Добавление содержимого в форму
Перейдите вразработчик и выберите элементы управления, которые вы хотите добавить в документ или форму. Чтобы удалить управление содержимым, выберите его и нажмите кнопку Удалить. После вставки элементов управления можно настроить свойства.
Примечание: Форму с элементами управления содержимым можно распечатать, однако поля вокруг них напечатаны не будут.
В элементе управления содержимым "форматированный текст" пользователи могут выделять текст полужирным шрифтом или курсивом, а также вводить несколько абзацев текста. Чтобы ограничить возможности пользователей, вставьте элемент управления содержимым "обычный текст".
Щелкните или коснитесь того места, куда вы хотите вставить нужный контроль.
Выберите Разработчик >содержимого СОДЕРЖИМОГО или Обычный текст, .
Чтобы настроить определенные свойства для элементов управления, см. настройка и изменение свойств элементов управления содержимым.
Элемент управления "рисунок" часто используется в шаблонах, однако его можно добавить и в форму.
Щелкните или коснитесь того места, куда вы хотите вставить нужный контроль.
Выберите Developer >Picture Content Control .
Чтобы настроить определенные свойства для элементов управления, см. настройка и изменение свойств элементов управления содержимым.
Используйте стандартные блоки, когда хотите предоставить пользователям возможность выбрать определенный блок текста. Например, элементы управления созданием блоков полезны, если вам нужно добавить другой шаблон в зависимости от конкретных требований договора. Вы можете создать для каждого варианта элемент управления содержимым "форматированный текст" и поместить их все в элемент управления "стандартный блок", который будет служить контейнером.
Щелкните или коснитесь того места, куда вы хотите вставить нужный контроль.
Перейдите на веб-странице"Управлениесодержимым коллекции (или "Управление содержимым "building block").
Выберите Разработчик и элементы управления содержимым для этого блока.
Щелкните или коснитесь того места, куда вы хотите вставить нужный контроль.
Чтобы настроить определенные свойства для элементов управления, см. настройка и изменение свойств элементов управления содержимым.
Вставка поля со списком или раскрывающегося спискаВ поле со списком пользователи могут выбрать один из предложенных вами пунктов или ввести собственный вариант. В раскрывающемся списке пользователи могут только выбрать один из имеющихся пунктов.
Перейдите в >со списком для разработчиков или Управление содержимым в .
Выберите объект управления содержимым, а затем выберите Свойства.
Чтобы создать список вариантов, выберите Добавить в списке Свойства списка.
Введите вариант в области Отображаемого имени,например Да,Нетили Возможно.
Повторяйте этот шаг до тех пор, пока все нужные вам значения не окажутся в раскрывающемся списке.
При необходимости задайте остальные свойства.
Примечание: Если установить флажок Содержимое нельзя редактировать, пользователи не смогут изменять выбранные пункты.
Щелкните или коснитесь того места, куда вы хотите вставить кнопку "Выбор даты".
Выберите Developer >Date Picker Content Control .
Чтобы настроить определенные свойства для элементов управления, см. настройка и изменение свойств элементов управления содержимым.
Щелкните или коснитесь того места, куда вы хотите вставить поле с кнопкой "квадрат".
Чтобы настроить определенные свойства для элементов управления, см. настройка и изменение свойств элементов управления содержимым.
Использование устаревших элементов управления формыЭлементы управления устаревшими формами можно использовать для совместимости с более старыми версиями Word и состоят из устаревших форм и элементов Active X.
Щелкните или коснитесь того места, куда вы хотите вставить устаревший контроль.
Перейдите в > в формы.
Выберите нужный элемент управления в разделе Формы предыдущих версий или Элементы ActiveX.
Настройка и изменение свойств элементов управления содержимым
У каждого элемента управления содержимым есть параметры, которые можно установить или изменить. Например, для элемента управления "Выбор даты" вы можете выбрать различные форматы отображения даты.
Выберите содержимое, которое вы хотите изменить.
Перейдите в >для разработчиков.
Измените нужные свойства.
Защита формы
Если вы хотите ограничить возможности редактирования или форматирования формы пользователями, воспользуйтесь командой Ограничить редактирование.
Откройте форму, которую хотите заблокировать или защитить.
Выберите Разработчик >ограничить редактирование.
После выбора ограничений выберите Да, Начать защиту.
Дополнительный совет:
Если вы хотите защитить только части документа, разделите его на разделы и защитите только нужные разделы.
Для этого в области "Ограничить редактирование" выберите "Выбор разделов". Дополнительные сведения о разделах см. в статье Вставка разрыва раздела.
Отображение вкладки "Разработчик"
Если вкладка "Разработчик" не отображается на ленте, см. отображение вкладки "Разработчик".
Открытие шаблона или использование пустого документа
Чтобы создать в Word форму, которую смогут заполнять другие люди, начните с шаблона или документа и добавьте элементы управления содержимым. Элементы управления содержимым включают в себя флажки, текстовые поля и списки. Если вы знакомы с базами данных, вы можете даже связывать элементы управления содержимым с данными.
Выберите Файл > Создание из шаблона.
В области Поиск введите форма.
Дважды щелкните нужный шаблон.
Выберите файл > Сохранить каки уберите расположение для сохранения формы.
В оке Сохранитькак введите имя файла и выберите Сохранить.
Перейдите в папку > новый документ.
Выберите Файл > Сохранить как.
В оке Сохранитькак введите имя файла и выберите Сохранить.
Добавление содержимого в форму
Перейдите вразработчик и выберите элементы управления, которые вы хотите добавить в документ или форму. Чтобы удалить управление содержимым, выберите его и нажмите кнопку Удалить. После вставки элементов управления можно настроить параметры. В меню Параметры можно добавлять макрос входа и выхода для запуска при взаимодействии с элементами управления, а также элементы списка для полей со списком.
Добавление элементов управления содержимым в формуВ документе щелкните или коснитесь того места, куда вы хотите добавить управление содержимым.
На сайтеразработчика выберите Текстовое поле,Поле сополем или Поле со полем со полем со полем.
Чтобы настроить определенные свойства для этого параметра, выберите Параметрыи установите .
Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.
Параметры, которые можно настроить как для общих параметров, так и для управления определенными настройками. Выберите один из параметров, а затем выберите Параметры, чтобы настроить или внести изменения.
Настройка общих свойств.
Чтобы выбрать макрос для запуска, можно выбрать записанный или настраиваемый макрос, который будет запускаться при вводе или выходе из поля.
Закладка Указать уникальное имя или закладку для каждого из них.
Вычисления при выходе В результате Word будет запускать или обновлять любые вычисления, например общую цену при выходе пользователя из поля.
Добавление текста справки Подайте подсказки или инструкции для каждого поля.
ОК Сохранение параметров и выход из панели.
Отмена Забудет об изменениях и выход из панели.
Настройка определенных свойств для текстового окна
Тип Выберите форму Обычный текст, Число, Дата, Текущая дата, Текущее время или Вычисление.
Текст по умолчанию задает необязательный учебный текст, который отображается в текстовом поле до того, как пользователь в него вошел. Установите для поля включено разрешение ввода текста в поле.
Максимальная длина задает длину текста, который пользователь может ввести. Значение по умолчанию — Unlimited.
В текстовом формате можно настроить автоматическое форматирование текста на "Все буквы", "Нижний регистр", "Первая строчная" или "Заголовок".
Текстовое поле включено Позволяет пользователю вводить текст в поле. Если есть текст по умолчанию, пользовательский текст заменяет его.
Установите определенные свойства для квадрата.
Значение по умолчанию Выберите значение Не проверено илине по умолчанию.
Размер чека Замерять размер точно или автоматически, чтобы при необходимости изменить его.
Включена проверка Позволяет пользователю проверить или очистить текстовое поле.
Настройка определенных свойств для полей со множеством
Drop-down item Введите строки для элементов списка. Нажмите +или ВВОД, чтобы добавить элемент в список.
Элементы в списке Отображает текущий список. Выберите элемент и с помощью стрелок вверх или вниз измените порядок, нажмите — для удаления выбранного элемента.
Drop-down enabled Позволяет пользователю открыть поле со полем и выбрать его.
Перейдите в >формы разработчика.
Примечание: Чтобы отоградить форму и продолжить редактирование, еще раз выберите Защитить форму.
Сохраните и закройте форму.
При необходимости вы можете проверить форму, прежде чем распространять ее.
Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.
Отображение вкладки "Разработчик"
В правой части ленты выберите , а затем выберите Параметры ленты.
В области Настройка выберитеРазработчик .
Открытие шаблона или документа, на основе которого создается форма
Вы можете можно начать работу с пустого документа и создать собственную форму с нуля. Чтобы сэкономить время, можно использовать шаблон.
Выберите Файл > Создание из шаблона.
В левой области разорите список Шаблоны из Интернетаи выберите Forms.
Дважды щелкните шаблон формы, который нужно использовать.
Добавление элементов управления содержимым в форму
В документе щелкните место, куда нужно добавить элемент управления содержимым.
На вкладке Разработчик в области Элементы управления формывыберите Текстовые поле,Квадратили Поле со полем со полем.
Чтобы настроить определенные свойства для этого параметра, выберите Параметры, а затем настройте нужные свойства.
Примечание: Чтобы составить раскрывающийся список для поля со списком, выберите заполнитель поля, щелкните Параметры и добавьте в список нужные пункты.
Повторите шаги 1–3 для каждого из элементов управления, который хотите добавить.
Добавление учебного текста (необязательно)
Пояснительный текст (например, "введите имя") в текстовом поле позволит сделать форму более удобной. По умолчанию текстовое поле остается пустым, но вы можете добавить в него текст.
Выберите текстовое поле, в которое вы хотите добавить учебный текст.
На вкладке Разработчик в области Элементы управления формывыберите Параметры.
В тексте по умолчаниювведите инструкции.
Убедитесь, что выбрана включенная заливка, а затем выберите ОК.
Защита формы
На вкладке Разработчик в области Элементы управления формывыберите Защитить форму.
Примечание: Чтобы снять защиту формы и продолжить редактирование, щелкните Защита формы еще раз.
Сохраните и закройте форму.
Проверка формы (необязательно)
При необходимости вы можете проверить форму, прежде чем распространять ее.
Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.
Создание заполняемых форм невозможно в Word в Интернете.
Форму можно создать в версии Word для настольных компьютеров с помощью инструкций в области Создание заполняемой формы.
Когда вы сохраните документ и откроете его в Word в Интернете, вы увидите внесенные изменения.
Хочу сделать шаблон в 2007-м, с использованием элементов управления, при этом один элемент должен повторяться в нескольких местах документа. То есть, поменял дату в начале и она поменялась по всему документу. Аналогично сделано в стандартном шаблоне «Современный отчет». Например, там есть «подзаголовок» и еще эти элементы выделены оранжевыми «тегами». Но у меня ничего не получается, и в хелпе ничего нормального на эту тему нет.
В стандартных шаблонах редактора Word 2007 используются именно элементы управления содержимым, а не закладки с полями REF в версии редактора Word 2003 (читайте в заметке ).
Самый простой способ добавить в свой шаблон (используйте шаблоны, а не документы!) блок с повторяющейся информацией, это воспользоваться стандартными блоками (экспресс-блоки). На вкладке ленты Вставка в группе команд Текст нажмите кнопку Экспресс-блоки. Из списка команд выберите команду Свойства. Откроется дополнительное меню из 15 встроенных свойств документа:
Для наших целей вполне подойдут два свойства: Аннотация и Примечание.
Вставьте в документ какой-нибудь один блок из вышеназванных, например, Примечание и, при необходимости, задайте его свойства. Чтобы задать свойства для блока, выделите блок, перейдите на вкладку Разработчик и в группе команд Элементы управления нажмите кнопку Свойства. Откроется диалоговое окно Свойства элемента управления содержимым:
В этом окне можно изменить данные в полях Название, Тег, задать стиль для блока и др.
Теперь скопируйте этот элемент в буфер обмена и вставьте его в любом месте документа, где вы планируете разместить повторяющийся фрагмент текста. После изменения текста в первом блоке и выхода из него (курсор ввода поместить на любом месте документа), автоматически изменится текст во втором блоке. При этом неважно, в каком именно блоке вы измените текст — во втором, или в третьем (если таких одинаковых блоков у вас несколько). Изменяя текст в любом блоке — изменится текст во всех ваших блоках.
Но существует один недостаток в этом решении. В вашем шаблоне может быть не один текстовый блок (с определенным текстом), который нужно повторять в нескольких местах документа. Если вы вставите еще одно Примечание, то его текст будет аналогичным тексту в уже имеющихся в документе блоках. Но, что если нужно будет добавить другой блок с другим текстом? Какой же выход?
Один из разработчиков дополнений к радактору Word — Грегори Макси — создал специальный шаблон-надстройку для Word 2007, с помощью которого можно создавать различные текстовые элементы в шаблонах для реализации повторяющихся данных в тексте. Вот ссылка на статью Грега (в конце статьи есть ссылка на архивированный файл шаблона): . Распакуйте архив в папку STARTUP (C:\Program Files\Microsoft Office\Office12\STARTUP\) и перезагрузите редактор. На ленте редактора появится вкладка Надстройки, где будут размещены три кнопки:
Работа с этой надстройкой очевидна и не представляет трудностей (достаточно начальных знаний английского языка). На странице автора в картинках все объснено.
Перед тем, как создавать ваши блоки, нужно сохранить документ с одним из расширений Word 2007. Впрочем, программа сама предупредит вас об этом.
Читайте также: