Копирование содержимого поля формы (Microsoft Word)
Допустим, вы разрабатываете форму, и вам нужно скопировать содержимое одного поля формы в другое. Например, форма может иметь несколько страниц, и вам нужно, чтобы имя пользователя было вверху каждой страницы. Очевидно, было бы проще, если бы пользователю нужно было ввести свое имя только один раз, а затем оно автоматически заполнялось в другом месте формы.
Вы можете подойти к этому двумя способами. Первый способ заключается в том, что каждый раз, когда вы вставляете поле формы в документ, содержимое поля автоматически добавляется в закладки. Таким образом, вы можете использовать поля ссылок на закладки по всему документу, чтобы ссылаться на все, что пользователь ввел в это поле. Второй способ заключается в фактическом копировании информации из одного поля в другое.
Для начала рассмотрим решение, использующее закладки. Каждый раз, когда вы вводите поле формы в документе, ему присваивается имя. Это имя зависит от типа введенного вами поля формы. Вы можете узнать имя (и при желании изменить его), щелкнув правой кнопкой мыши поле формы и выбрав «Свойства» в контекстном меню. Откроется диалоговое окно «Параметры поля формы», а в нижней части диалогового окна будет указано имя закладки для поля. (Это будет имя, например Text1.) Вы должны запомнить это имя для поля формы, содержимое которого вы хотите использовать в другом месте.
Теперь поместите точку вставки там, где вы хотите, чтобы отображалось содержимое формы. Например, в том месте, где вы хотите, чтобы имя пользователя формы отображалось второй или третий раз. Здесь вы должны выполнить следующие действия:
-
Нажмите Ctrl + F9, чтобы вставить пару скобок поля. Точка вставки должна находиться между фигурными скобками.
-
Введите REF, а затем имя поля формы, которое вы ранее отметили.
Например, если имя поля формы — Text1, вы должны ввести REF Text1.
-
Нажмите F9, чтобы отобразить результаты полей вместо кодов полей.
Помните, что даже если вы можете повторно использовать информацию о содержимом поля формы таким образом, информация не обновляется автоматически, когда пользователь покидает поле формы. (Ну, это так, и это не так.) Вы должны доверять Word в этом, поскольку содержимое полей (поле REF) обычно не обновляется, пока вы не распечатаете или не посмотрите предварительный просмотр документа. (Это поведение контролируется опцией на вкладке «Печать» диалогового окна «Параметры».) Конечно, поле также можно обновить, выбрав его и нажав F9. Любой из них требует ручных действий со стороны пользователя, но можно начать создавать макросы, которые будут делать это автоматически.
Второй общий метод копирования содержимого поля заключается в буквальном копировании информации из одного поля в другое. Это должно быть сделано с помощью макроса, и это кажется излишним в свете уже обсуждавшейся функции закладок. Однако бывают случаи, когда вам действительно нужны два поля формы в вашем документе, и вы хотите, чтобы второе поле формы по умолчанию соответствовало тому, что пользователь ввел в первое поле формы. В этом случае вы должны записать имена, присвоенные полям формы Word. Для целей этого обсуждения предположим, что это имена Text1 и Text2, и что вы хотите скопировать содержимое Text1 в Text2, как только пользователь покинет Text1. Вы можете использовать следующий простой макрос:
Sub CopyField() Dim Temp as String Temp = ActiveDocument.FormFields("Text1").Result ActiveDocument.FormFields("Text2").Result = Temp End Sub
Теперь вам нужно настроить свое первое поле так, чтобы макрос выполнялся каждый раз, когда поле остается. Для этого выполните следующие действия:
-
Щелкните правой кнопкой мыши первое поле. Откроется контекстное меню.
-
Выберите «Свойства» в контекстном меню. Word отображает диалоговое окно «Параметры поля формы».
-
Диалоговое окно содержит два поля, в которых вы можете указать макрос, который будет запускаться при входе в поле и выходе из него.
-
Используйте раскрывающийся список Exit, чтобы выбрать только что созданный макрос (CopyField).
-
Щелкните ОК.
Теперь защитите документ для полей и сохраните шаблон формы. В следующий раз, когда вы создадите новый документ из шаблона, пользователь сможет заполнить поля. Когда поле Text1 закрывается, поле Text2 мгновенно обновляется тем, что было введено в Text1.
Поймите, что пользователь может изменить все, что находится в Text2; изменение заключалось в том, чтобы просто установить значение по умолчанию. Вы также должны понимать, что если пользователь «возвращается назад» и снова изменяет Text1, а затем выходит из этого поля, содержимое Text2 изменяется независимо от того, что было раньше.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1703) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:
link: / wordribbon-Copying_Form_Field_Contents [Копирование содержимого поля формы]
.