Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Для версии Microsoft Word 97 в данной статье см.
187985.

Обзор

Данная статья содержит четыре Microsoft Visual Basic для приложений, макросы, которые можно использовать для имитации Microsoft Word 6.0 для Windows функциональность клавишу ВВОД для перемещения между полями формы в защищенные документы.

Дополнительные сведения

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без гарантий, явных или подразумеваемых, включая, но не ограничиваясь, подразумеваемые гарантии товарности или пригодности для определенной цели. Предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, используемые для разработки и отладки. Специалисты службы технической поддержки Майкрософт могут объяснить возможности конкретной процедуры, но не выполнять модификации примеров для обеспечения функциональных возможностей или удовлетворения конкретных потребностей.
Если вы имеете ограниченный опыт программирования, у вас может возникнуть потребность связаться с сертифицированным партнером корпорации Майкрософт или консультационной службой корпорации Майкрософт. Для получения дополнительных сведений посетите следующие веб-сайты корпорации Майкрософт:

Сертифицированные партнеры Майкрософт: https://partner.microsoft.com/global/30000104

Консультационная служба корпорации Майкрософт: http://support.microsoft.com/gp/advisoryservice

Дополнительные сведения о доступных вариантах поддержки и о том, как связаться с корпорацией Майкрософт, посетите следующий веб-узел корпорации Майкрософт:условиям обслуживания см. EN-US; CNTACTMS
Дополнительные сведения о запуске примера кода щелкните следующий номер статьи базы знаний Майкрософт:

212536 OFF2000: запуск кода примера из статей базы знаний

Ввод ключевых функциональных возможностей в Word 6.0

В Word 6.0 для Windows при нажатии клавиши ENTER в документе, защищенном для форм, перемещает курсор к следующему полю формы. Напротив в более поздних версиях Microsoft Word, клавиши ВВОД не перемещается к следующему полю формы, но вместо Вставка знака абзаца, как в открытом документе. Это позволяет вводить несколько строк текста в текстовое поле.

Макросы

Ниже приведены четыре Visual Basic для приложений, макросы, которые можно использовать вместе для имитации Word 6.0 для Windows функциональность клавиши ВВОД в новых документах поля защищенной формы на основе шаблона. Ниже приведено краткое описание функций каждого макроса:

  • Первый макрос перемещает курсор к следующему полю формы.

  • Второй макрос назначает первого макроса клавишу ВВОД.

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

  • Четвертый макрос удаляет назначенного макроса из клавиша ENTER, восстановление функциональности по умолчанию клавиши ВВОД.

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

Невозможно изменить контекст.

Чтобы снять шаблон, выполните следующие действия:

  1. Откройте шаблон, содержащий макросы, описанные в этой статье.

  2. В меню Сервис выберите пункт Снять защиту.

  3. В меню Файл нажмите кнопку Сохранить.

  4. В меню файл выберите команду Закрыть.

Первый макрос: Перемещение курсора к следующему полю формы

Этот макрос перемещает курсор к следующему полю формы. Если текущее поле формы является последним в документе, его перемещение курсора к первому полю формы.

Этот макрос использует коллекцию закладок для извлечения имени текущего поля формы. Имя каждого поля формы является также именем закладки для поля формы. Если имеются другие закладки в документе, может потребоваться добавление дополнительных кода для обработки возможных ошибок. Макрос также предполагается, что все поля формы в документах ввода данных пользователем. Если это не так в документе, необходимо добавить дополнительный код в макрос.

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

Sub EnterKeyMacro()
' Check whether the document is protected for forms
' and whether the protection is active.
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields And _
Selection.Sections(1).ProtectedForForms = True Then
' Retrieve the bookmark of the current selection.
' This is equivalent to the name of the form field.
myformfield = Selection.Bookmarks(1).Name
' Go to the next form field if the current form field
' is not the last one in the document.
If ActiveDocument.FormFields(myformfield).Name <> _
ActiveDocument.FormFields(ActiveDocument.FormFields.Count) _
.Name Then
ActiveDocument.FormFields(myformfield).Next.Select
Else
' If the current form field is the last one,
' go to the first form field in the document.
ActiveDocument.FormFields(1).Select
End If
Else
' If the document is not protected for forms,
' insert a tab stop character.
Selection.TypeText Chr(13)
End If
End Sub

Второй макрос: Назначение макросов EnterkeyMacro клавишу ВВОД

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

Sub AutoNew()
' Do Not protect the template containing these macros.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the ENTER key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
' Reprotect the document with Forms protection.
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End Sub

Третий макрос: Назначение макроса AutoOpen клавиши ВВОД

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

Sub AutoOpen()
' This macro will reassign the ENTER key when you open an existing
' Word form fields document.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the Enter key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
End Sub

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

Четвертый макроса: Удаление команды, назначенные клавиши ВВОД

Этот макрос восстанавливает функциональность по умолчанию клавиши ВВОД. При использовании этого макроса в пользовательский шаблон имен AutoClose.

Sub AutoClose()
CustomizationContext = ActiveDocument.AttachedTemplate
FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
' Disables prompt to save template changes.
Templates(1).Save
End Sub

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

Ссылки

Дополнительные сведения о доступных ресурсов для создания пользовательских решений с помощью Visual Basic для приложений и Microsoft Word 2000 щелкните следующий номер статьи базы знаний Майкрософт:

212623 WD2000: макрос программные ресурсы

226118 OFF2000: программные ресурсы для Visual Basic для приложений

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×