Как создать поле для ввода текста в Word: пошаговая инструкция

Продолжаем нашу серию заметок, посвященных автоматизации работы с документами.

Сегодня я поделюсь информацией о том, как интегрировать в ваши документы специальную форму, которая позволит удобно вводить данные. С помощью кнопки на форме информация будет автоматически перенесена в документ.

Предполагается, что у вас имеется готовый шаблон документа, например, для письма. В качестве примера можно воспользоваться кадровым шаблоном официального письма, созданным для вымышленной компании.

Использование шаблона необходимо, ведь на его основе вы в дальнейшем будете создавать свои документы.

Извлеките файл из архива и переместите его в каталог с шаблонами для редактора Word. Обычно этот каталог расположен по следующему пути: C:Documents and SettingsИМЯ_ПОЛЬЗОВАТЕЛЯApplication DataMicrosoftШаблоны.

Теперь у нас есть шаблон документа, он открыт и готов к редактированию. Прежде всего, необходимо установить закладки в тех местах документа, куда вы планируете вставлять информацию из формы. Как правило, письмо должно включать фамилию, имя и отчество получателя, наименование его организации, полный почтовый адрес и приветствие.

Исходя из этого мы добавим в документ следующие закладки:

Важно отметить, что количество реквизитов адресата, которые должно содержать письмо, может быть довольно большим, а мы определили лишь пять закладок. Это вполне разумно, поскольку в будущем мы будем добавлять несколько реквизитов к одной закладке (к примеру, адрес, который включает в себя индекс, название города, области и улицы).

После того как закладки будут добавлены (и если у вас включен режим отображения меток закладок), наш документ будет представлять собой примерно то, что показано на рисунке ниже (нажмите на изображение для его увеличения):

После нажатия кнопки "Добавить информацию" эти метки закладок будут заменены на определённые тексты.

Не забывайте сохранять сделанные вами изменения в шаблоне на всякий "пожарный" случай.

На втором шаге мы создадим специальную форму с текстовыми полями, которая будет открываться при создании каждого нового документа на основе вашего шаблона письма. Кратко расскажу, как добавить в шаблон форму.

Откройте редактор Visual Basic с помощью сочетания клавиш «Alt»+«F11». Убедитесь, что в окне проектов выделен ваш шаблон:

Текстовые поля (со стандартными именами TextBox1) были мною переименованы с учетом их назначения. Обратите внимание в нижеприведенном коде, как они теперь называются.

Третий шаг — написание кода для элементов нашей формы.

    В меню Insert выберите команду Module. В окне проектов будет создан новый модуль Module1. Дважды щелкните по модулю и перейдите в окно редактирования кода. Вставьте следующий код:

Sub AutoNew() Dim oF As MyForm Set oF = New MyForm oF.Show Set oF = Nothing End Sub
Private Sub CommandButton1_Click() ‘Обработчик действий формы при нажатии кнопки "Ввести данные" Dim bm As Bookmarks Dim rng As Word.Range Dim addr As String Dim sText As String Dim sResult1 As String Dim sResult2 As String Dim arName() As String Set bm = ActiveDocument.Bookmarks sText = Me.tbName.Text ‘сохраняем текст из поля "Имя адресата" в переменной arName = Split(sText) ‘разбиваем текст на массив слов, составляющих ФИО адресата ‘Работа с полем "Дата" With Me.tbDate If Not IsDate(.Text) Then ‘если дата введена некорректно, то MsgBox "Неверный формат даты в поле ""Дата"" ‘выводим предупреждение .Text = Format(Now, "dd MMMM yyyy") ‘заполняем поле текущей датой .SetFocus ‘устанавливаем фокус на поле "Дата" .SelStart = 0 ‘ .SelLength = Len(.Text) ‘выделяем текст в поле, начиная с начала Exit Sub Else Set rng = bm("date").Range ‘сохраняем ссылку на закладку "date" rng.Text = .Text ‘присваиваем новое значение закладке bm.Add "date", rng ‘обновляем закладку End If End With Set rng = bm("name").Range ‘сохраняем ссылку на закладку "name" sResult1 = arName(0) " ‘записываем первое слово из поля "Имя адресата" и добавляем пробел sResult1 = sResult1 ". " ‘добавляем к первому слову первую букву Имени и точку sResult1 = sResult1 "." ‘добавляем первую букву Отчества и точку rng.Text = sResult1 ‘обновляем текст закладки bm.Add "name", rng ‘обновляем закладку Set rng = bm("company").Range ‘сохраняем ссылку на закладку "company" rng.Text = Me.tbCompany ‘обновляем текст закладки bm.Add "company", rng ‘обновляем закладку If Len(sText) > 0 Then ‘если в поле "Имя адресата" есть текст, то sText = sResult1 name" и переводим строку End If If Len(Me.tbCompany.Text) > 0 Then ‘если в поле "Организация" есть текст, то Me.tbCompany.Text = Me.tbCompany.Text 0 Then ‘если в поле "Адрес" есть текст, то Me.tbAddress.Text = Me.tbAddress.Text ‘сохраняем текст из поля End If If Len(Me.tbIndex.Text) > 0 Then ‘если в поле "Индекс" есть текст, то Me.tbIndex.Text = Me.tbIndex.Text ," ‘сохраняем текст из поля и добавляем запятую End If If Len(Me.tbCity.Text) > 0 Then ‘если в поле "Город" есть текст, то Me.tbCity.Text = Me.tbCity.Text ," ‘сохраняем текст из поля и добавляем запятую End If If Len(Me.tbOblast.Text) > 0 Then ‘если в поле "Область" есть текст, то Me.tbOblast.Text = Me.tbOblast.Text ," ‘сохраняем текст из поля и добавляем запятую End If ‘сохраняем текст из полей "Индекс", "Город", "Область" и "Адрес" addr = Me.tbIndex.Text " " " " " address").Range ‘сохраняем ссылку на закладку "address" rng.Text = addr ‘обновляем текст закладки из переменной addr bm.Add "address", rng ‘обновляем закладку Set rng = bm("salutation").Range ‘сохраняем ссылку на закладку "salutation" rng.Text = Me.tbSalutation.Text ‘обновляем текст закладки bm.Add "salutation", rng ‘обновляем закладку Unload Me ‘Закрываем форму ActiveDocument.Range.Fields.Update ‘Обновляем все поля в документе End Sub
Private Sub CommandButton2_Click() ‘Закрытие формы и документа при нажатии кнопки "Отменить" On Error GoTo ErrLabel Unload Me ‘Закрываем форму ActiveDocument.Close ‘Закрываем текущий документ ErrLabel: End Sub Private Sub tbIndex_Exit(ByVal Cancel As MSForms.ReturnBoolean) ‘Настройка правил для поля "Индекс" With Me.tbIndex If Not IsNumeric(.Text) Or Len(.Text) <> 6 Then ‘если в поле "Индекс" данные не являются цифрами или их длина не равна 6, то MsgBox "Ошибка!" " Пожалуйста, введите 6 цифр индекса вашего региона." ‘выдаем предупредительное сообщение Cancel = True ‘возвращаемся к полю .Text = "" ‘очищаем содержимое поля .SetFocus End If End With End Sub Private Sub tbName_Exit(ByVal Cancel As MSForms.ReturnBoolean) ‘При выходе из поля "Имя адресата" значение его имени помещается в поле "Приветствие" sText = Me.tbName.Text arName = Split(sText) sResult2 = arName(1) " sResult2 = sResult2 Уважаемый " "!" End Sub Private Sub UserForm_Initialize() Me.tbDate = Format(Now, "dd MMMM yyyy") With Me.tbName .Text = "Фамилия Имя Отчество" .SetFocus .SelStart = 0 .SelLength = Len(.Text) End With End Sub

Вы можете скачать уже готовый шаблон письма и подредактировать его под свои нужды.

В этом шаблоне есть небольшой недостаток: в текстовые поля нужно вводить информацию в правильном формате и регистре, иначе в итоговом письме придется вручную править недочеты.

Образцом для шапки шаблона послужила картинка из шаблона городского письма редактора Word 2007.

Образцом кода для данного макроса и формы послужила заметка Gregory Maxey Address a Letter Using as UserForm.

Еще записи по вопросам использования Microsoft Word:

  • 250 бесплатных шаблонов для MS Office
  • 3 способа очистки списка недавно открытых документов
  • Word 2007: добавляем свою вкладку и свои команды
  • Абзац с цветным фоном
  • Автоматическая запись макроса
  • Автоматическая расстановка переносов
  • Автоматическое обновление полей при открытии документа
  • Автоматическое сохранение документа при его закрытии
  • Быстрая смена ориентации страниц документа
  • Быстрое перемещение между открытыми документами Word
  • Быстрое создание нового документа на основе шаблона
  • Быстрый ввод текста с помощью команды =rand()
  • Быстрый доступ к папке с шаблонами Word
  • Ввод часто повторяющихся фрагментов текста
  • Вставка будущей даты
  • Вставка документа с книжной ориентацией в документ с альбомной ориентацией
  • Вставка завтрашней даты
  • Вставка изображений из указанной папки для Word 2007
  • Вставка неформатированного текста
  • Вставка скопированного текста в предопределенном формате
  • Вставка текста с полями в нижний колонтитул
  • Вставка текста с помощью кнопки
  • Выделение видимой части экрана
  • Двойная нумерация страниц в документе
  • Задать обтекание текстом для всех рисунков в документе
  • Автозаполнение документа Word Без Excel через текстовые поля 2022

    Столкнулся с тем, что все инструкции связаны со сложной автоматизацией с использованием кучи каких-то файлов, экселя и его таблиц, связей документов и так далее. Всё можно сделать гораздо проще!

    Автозаполнение документа или договора Word Без Excel – как это сделать?

    Как же я потратил кучу времени, вводя запросы вроде “как реализовать автозаполнение в ворде без экселя” или “заполнение документа значением поля” или “автоматическое значение поля в тексте word”. В итоге всё оказалось гораздо проще, чем я думал изначально.

    Да, можно делать очень полезные связки документов, когда мы заполняем эксель, а потом у нас шаблон ворда из него берет информацию. Но объяснить какому-нибудь муниципальному сотруднику как это делать – задача практически невозможноя.

    Так вот, всё что нам потребуется – это Microsoft Word Документ. В нем мы создадим поля, настроим страницы и всё будет автоматически наполняться.

    Инструкция как сделать автозаполнение документа Word из полей

    Для примера возьму документ договора, где есть заказчик, исполнитель, дата документа и сумма договора, которые мы хотим подставлять из полей.

    Пример документа с автозаполнением из полей делаю в microsoft office word 2019 (автоматизация заполнения документов word без эксель).

  • Формат документа DOCM. Создаем новый документ и сохраняем его в формате docm (Документ Word с поддержкой макросов).
  • Вкладка “Разработчик”. Файл – Параметры – Настроить ленту. В выпадающем списке выбираем “Основные команды”, затем выделяем ниже строчку “Разработчик”, и по середине жмем “Добавить”. Справа появляется “разработчик” с плюсиком, жмем Ок, и видим, что теперь вверху есть вкладка “Разработчик”.
  • Делаем страницу с полями для ввода данных документа (договора). Кликаю в начале договора, жму вставка – разрыв страницы, и в итоге у меня пустая первая страница. На ней создаю табличку, это не обязательно, и начинаю там создавать поля. Делаем страницу с полями для ввода данных
  • Создаём поля для ввода текста для автозаполнения документа. Кликаем в любое место документа, где нам нужно поле. Переходим во вкладку Разработчик. Вставляем не просто текстовое поле, а именно СТАРОЕ текстовое поле. То есть выбираем там уже иконку “Инструменты из предыдущих версий”, затем “Поле (элемент управления формы)”. И вставляем куда нам нужно.
  • Настраиваем поля Word для автозаполнения. Когда поле есть на странице, жмем по нему правой кнопкой и во всплывающем меню выбираем “Свойства” (поля). Настраиваем обязательно следующие параметры поля: — Текст по-умолчанию: тут свой текст. — Закладка: на английском, уникальный идентификатор поля. Придумайте что-нибудь понятное, это нам пригодится далее. — Ставим галочки (чек-боксы) “разрешить изменения” и “вычислить при выходе”. В данном примере я создал текстовое поле, в котором будет Дата договора (по сути это любой текст). Мне главное, чтобы я в одном месте ввел данные, а в других местах документа текст из поля автоматически заполнился. И в данном случае это будет то, что я назвал датой.
  • Настраиваем подстановку текста из поля в документ. ЕСТЬ ДВА СПОСОБА: ВРУЧНУЮ СОВСЕМ, И ЧЕРЕЗ СВОЙСТВА ПОЛЕЙ. Разберем первый способ: вставка текста из поля в документ через закладку ctrl+f9. Для этого выбираем место, где у нас должно подставиться значение поля. Мы помним, что в нашем случае уникальный идентификатор (название закладки) в примере: POLEDATE. В этом месте кликаем мышкой левой кнопкой (просто чтобы там курсор мигал), затем на клавиатуре нажимаем сочетание клавиш Ctrl+F9 (контрол плюс эф девять). Видим, что появились фигурные скобки с серым фоном, и мы можем внутри печатать. Печатаем внутри следующее: REF POLEDATE. Поясняю: внутри фигурных скобочек, должно быть три буквы заглавных REF, затем пробел, затем то как мы назвали закладку (идентификатор поля). В нашем случае это POLEDATE, а может быть что угодно. Больше ничего жать не нужно, можно убрать оттуда курсор. Вот как это выглядит в итоге: Второй способ: вставка значения поля из другого поля автоматически через закладку REF. Это практически тоже самое, только не нужно нажимать ничего на клавиатуре. По мне так, дольше, но вдруг вам там понятнее. Так же создаем поле, в этом примере возьму сумму договора. При создании поля (см. п. 5) я ввел название закладки поля (уникальный идентификатор) pole_stoimost. Только теперь, когда мы нажали в место документа, куда хотим подставить данные автоматически (курсор там мигает), мы вставляем поле. Выбираем вкладку “Вставка”, затем “Экспресс-блоки”, затем “Поле” (как на скриншоте ниже): Это поле нужно настроить так, чтобы в него подставлялось значение другого поля автоматически. При вставке поля из экспресс-блоков, или когда вы потом можете нажать правой кнопкой Свойства поля, настраиваем так. Слева выбираем тип поля “Ref”, и дальше выбираем название нашей закладки, т.е. идентификатор поля, откуда надо подставить текст. В нашем случае это pole_stoimost: (вот кстати выше видно на скриншоте еще ошибку “Ошибка! Источник ссылки не найден.” – это происходит, когда вы ввели REF Несуществующая закладка, например. То есть не найдено поле (закладка) с тем идентификатором уникальным. И надо просто проверить свойства полей.). Короче, так или иначе, подытожу: — Создали поле через Разработчика. — У него в свойствах прописали уникальный идентификатор (название закладки). — Вставили через CTRL+F9 или экспресс блоки – поле (место) куда будет подстваляться текст из первого поля, указав такой же идентификатор.
  • Автозаполнения документа значением из полей через F9 или печать документа. Ну.. тут уже все понятно должно быть – насоздавали полей сколько нужно, поставляли в места куда нужно. По-умолчанию, Word будет автозаполнять документ автоматически, если весь документ выделить (ctrl+a например) и нажать кнопку F9. Места с REF и полями преобразуются в то, что есть в оригинальном поле-закладке. Но есть трудность – сложно объяснить людям как это работает, что выделять и как обновлять эти поля. Я выбрал способ попроще – чтобы поля автоматически обновлялись при печати (печатать почти все умеют как). Лезем в настройки (файл – параметры), там выбираем “Экран” и отмечаем галочку “Обновлять поля перед печатью”. Теперь, каждый раз когда через Файл – Печать или Ctrl+P будет печататься документ – поля будут обновляться (текст автоматически подставляться), т.е. тоже самое что через выделение документа и нажатие F9.
  • Наводим красоту: запрет редактирования, номера страниц. Ну и еще два момента.

    Во-первых, документы пронумерованы обычно. И основная проблема – что страница с полями тоже печатается, а в официальном документе её быть не должно. Соответственно, способа убрать страницу word из печати автоматически я не нашел. Поэтому, выкрутился по-другому. Через настройки колонтитула (несколько кликов по нижней части документа (или где там у вас номера страниц)), переходим в свойства, номера страниц, и там выбираем начать с “0″, с нуля короче. Таким образом, страница с полями становится как бы нулевой, и договор печатается как надо, первая страница договора остается первой. И второе, защита от редактирования, чтобы только вводили данные в поля. Сделал просто – Рецензирование – Ограничить редактирование – Да, включить защиту, ну и пароль 1. Отключается так же, только не все видят – там внизу кнопка становится “отключить защиту”.

  • Считаю обязательным выложить для вас сам документ, который использовал в этой инструкции. Если сильно запутались, можете просто из него скопировать оригинальные поля (которые в таблице) которые заполняются, и поля которые принимают автоматически значения из других полей.

    Скачать пример автоматическое заполнение Word из полей: Автозаполнение документов Word Без Excel через текстовые поля docm (пароль на отключение защиты: 1 (просто единичка)).

    P.S. Почему формат docm? На самом деле потому, что если формат doc или docx – то не работает вкладка “разработчик” где поля (ну не вставляются они). При этом – само автозаполнение прекрасно работает. Совет – делайте всё в docm, а итоговый результат, уже с защитой от редактирования – сохраните в обычный формат doc/docx и отдавайте, всё там прекрасно работает и печатается.

    Как создавать заполняемые формы в MS Word 2010

    Создавать формы в Microsoft Word легко. Трудности начинаются, когда Вы решаете создать заполняемые формы, которые можно будет разослать людям, чтобы они их заполнили. В этом случае MS Word поможет решить вашу задачу: будь то форма для сбора информации о людях или опрос для получения обратной связи от пользователей о программном обеспечении или о новом товаре.

    Включаем вкладку «Разработчик»

    Чтобы приступить к созданию заполняемых форм, в первую очередь необходимо активировать вкладку Разработчика. Для этого войдите в меню Файл и выберите опцию Параметры. В открывшемся диалоговом окне перейдите на вкладку Настроить ленту и из выпадающего списка выберите Основные вкладки.

    Поставьте галочку в строке Developer (Разработчик) и нажмите ОК.

    Теперь на ленте появилась новая вкладка.

    Быть или не быть Шаблону?

    Есть два варианта, с которых можно начать создавать формы. Первый проще, при условии, что Вы подберёте подходящий шаблон. Чтобы найти шаблоны, откройте меню File (Файл) и нажмите New (Создать). Вы увидите множество шаблонов, готовых для скачивания. Остаётся лишь кликнуть по Forms (Формы) и отыскать нужный шаблон среди предложенных.

    Когда найдёте подходящий шаблон, загрузите его и редактируйте форму, как пожелаете.

    Это самый простой путь, но может случиться так, что Вы не найдёте подходящий шаблон среди предложенных. В этом случае можно создать форму из черновика. Сперва откройте настройки шаблонов, но вместо уже готовой формы выберите My Templates (Мои шаблоны).

    Выберите Template (Шаблон) и кликните по ОК, чтобы создать чистый шаблон. В завершение нажмите Ctrl+S, чтобы сохранить документ. Назовём его Form Template 1.

    Наполняем форму элементами

    Теперь у Вас есть пустой шаблон, значит уже можно добавлять информацию в форму. Форма, которую мы создадим в этом примере, – это простой опросник для сбора информации о людях, которые будут его заполнять. Первым делом вставьте основные вопросы. В нашем случае мы будем узнавать следующую информацию:

  • Name (Имя) – обычный текст
  • Age (Возраст) – раскрывающийся список
  • D.O.B. (День Рождения) – выбор даты
  • Sex (Пол) – чек-бокс
  • Zip Code (Почтовый индекс) – обычный текст
  • Phone Number (Номер телефона) – обычный текст
  • Favorite Primary Color and why (Какой любимый цвет и почему) – поле со списком
  • Best Pizza Toppings (Любимая начинка пиццы) – чек-бокс и обычный текст
  • What is your dream job and why? Limit your answer to 200 words (О какой работе Вы мечтаете и почему) – форматированный текст
  • What type of vehicle do you drive? (Какой у Вас автомобиль) – обычный текст
  • Чтобы приступить к созданию различных вариантов элементов управления, откройте вкладку Developer (Разработчик), которую Вы добавили ранее, и в разделе Controls (Элементы управления) выберите Design Mode (Режим конструктора).

    Текстовые блоки

    Для любых вопросов, требующих ответа в форме текста, можно вставить текстовые блоки. Это делается при помощи:

  • Rich Text Content Control (Элемент управления содержимым «форматированный текст») — пользователь может настраивать форматирование
  • Plain Text Content Control (Элемент управления содержимым «обычный текст») — допускается только обычный текст без форматирования.
  • Предлагаю организовать текстовое поле с форматированием для ответа на вопрос 9 и обычное текстовое поле для ответов на вопросы 1, 5, 6 и 10.

    Не забывайте, что можно изменять текст в поле элемента управления содержимым, чтобы он соответствовал вопросу. Для этого кликните по полю и введите текст. Результат показан на изображении выше.

    Добавляем выбор даты

    Если Вам нужно добавить дату, можно вставить Date Picker Content Control (Элемент управления содержимым «выбор даты»). Используем этот элемент для вопроса 3.

    Вставляем раскрывающийся список

    Для вопросов, подразумевающих единственный ответ (например, вопрос 2), удобно использовать раскрывающийся список. Вставим простой список и заполним его возрастными диапазонами. Разместите поле элемента управления содержимым, кликните по нему правой кнопкой мыши и выберите пункт Properties (Свойства). В появившемся диалоговом окне Content Control Properties (Свойства элемента управления содержимым) нажмите Add (Добавить), чтобы добавить в список возрастные диапазоны.

    Когда закончите, у Вас должно получиться примерно то, что изображено на рисунке ниже. При этом режим конструктора нужно отключить!

    Ещё можно использовать Combo Box (Поле со списком), в котором легко составить список из любых нужных элементов. При необходимости пользователь сможет ввести дополнительный текст. Давайте вставим поле со списком для вопроса 7. Так как мы будем использовать этот элемент, пользователи смогут выбрать один из предложенных вариантов и ввести ответ, почему им нравится выбранный цвет.

    Вставляем чек-боксы

    Для ответа на четвёртый вопрос вставим чек-боксы. Для начала нужно ввести варианты ответов (male – мужчина; female – женщина). Затем добавить элемент управления содержимым Check box (Флажок) рядом с каждым вариантом ответа:

    Повторите это действие для любого вопроса, который подразумевает один или несколько вариантов ответа. Мы добавим чек-бокс к ответу на вопрос 8. Кроме того, чтобы пользователь мог указать вариант начинки пиццы, которого нет в списке, мы добавим элемент управления содержимым Plain Text (Обычный текст).

    В заключение

    Готовая пустая форма с включённым и с выключенным режимом конструктора должна выглядеть, как на рисунках ниже.

    Режим конструктора включен:

    Режим редактирования отключен:

    Поздравляем! Вы только что освоили основные приёмы создания интерактивных форм. Вы можете отправить файл DOTX людям, и когда они его запустят, он автоматически откроется как обычный документ Word, который можно заполнить и отправить обратно.

    Оцените статью
    InternetDoc.ru
    Добавить комментарий