Версия данной статьи для Microsoft Word 97:253552 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).
Аннотация
В статье описывается создание и использование поля со списком UserForm как макроса для того, чтобы в текстовом поле была показана информация из базы данных Microsoft Access. Этот макрос можно использовать для обхода ограничения в 25 элементов в списках.
Дополнительные сведения о том, как это выполнить без использования базы данных Microsoft Access , см. в следующих статьях базы знаний Майкрософт:
Дополнительные сведения о том, как это выполнить без использования базы данных Microsoft Access , см. в следующих статьях базы знаний Майкрософт:
198561 Создание поля со списком, содержащим более 25 элементов (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
306258 Создание поля со списком, содержащего более 25 элементов в Word 2002 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Дополнительная информация
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации. и не предоставляет явных или подразумеваемых гарантий относительно их пригодности для применения в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования и необходимых средств разработки и отладки. Специалисты служб технической поддержки Майкрософт могут пояснить назначение тех или иных конструкций кода в конкретном примере, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
Примечание. Для того, чтобы закрыть окно (например, окно программы или окно Свойства ), щелкните X в правом верхнем углу окна.
Для использования шаблона в Word 2007 нажмите кнопку Microsoft Office, щелкните Новый, выберите шаблон, а затем щелкните Создать.
Появится новый документ, основанный на шаблоне. UserForm, содержащий ComboBox с вашими элементами, появится при использовании клавиши TAB для перемещения в следующее текстовое поле.
Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
212536 Запуск кода примера из статей базы знаний Майкрософт в Office 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
В шаблоне выполните следующие действия.Примечание. Для того, чтобы закрыть окно (например, окно программы или окно Свойства ), щелкните X в правом верхнем углу окна.
Создания поля со списком UserForm
- В Microsoft Office Word 2003 и более ранних версиях выберите Макрос в меню Сервис, затем щелкните Редактор Visual Basic.
В Word 2007 щелкните вкладку Разработчик и выберите Редактор Visual Basic - В окне Проект выберите TemplateProject.
Примечание. Если окно Проект не появляется, щелкните Обозреватель проектов в меню Вид. - В меню Вставка выберите UserForm. Появятся пользовательская форма и Панель элементов. Щелкните правой кнопкой мыши в Пользовательской форме, а затем выберите Просмотреть код в контекстном меню. Добавьте в событие Initialize следующий код:
Option Explicit
'Define Variables
Private Sub UserForm_Initialize()
Dim dbDatabase As Database
Dim rsNorthwind As Recordset
Dim i As Integer
Dim aResults()
' This code activates the Database connection. Change
' the path to reflect your database.
Set dbDatabase = OpenDatabase("C:\My Documents\NorthWind.mdb")
' This code opens the Customers table. Change the Table
' to reflect the desired table.
Set rsNorthwind = dbDatabase.OpenRecordset("Customers", dbOpenSnapshot)
i = 0
With rsNorthwind
' This code populates the combo box with the values
' in the CompanyName field.
Do Until .EOF
ComboBox1.AddItem (i)
ComboBox1.Column(0, i) = .Fields("CompanyName")
.MoveNext
i = i + 1
Loop
End With
End Sub - Выберите в меню Сервис команду Ссылки.
- Щелкните Microsoft DAO 3.6 Object Library.
- Нажмите кнопку OK, чтобы закрыть диалоговое окно Ссылки.
- Закройте окно программы.
- Щелкните правой кнопкой мыши Пользовательская форма, затем выберите Свойства в контекстном меню. На вкладке По алфавиту переименуйте (Имя) на frmcombo, затем переименуйте Заголовок на Microsoft Word. Закройте окно Свойства пользовательской формы.
- На вкладке Элементы управления панели инструментов выберите Поле со списком и поместите его в пользовательскую форму. Щелкните правой кнопкой мыши элемент управления Пользовательская форма, а затем выберите Просмотреть код в контекстном меню. Измените код поля со списком на следующий.Примечание. Text1 –– это название закладки в текстовом поле, вставленной в шаблон на этапе 2, описанном в разделе "Создание текстового поля" данной статьи.
Private Sub ComboBox1_Change()
ActiveDocument.FormFields("Text1").Result = ComboBox1.Value
End Sub - Закройте окно программы.
- На вкладке Элементы управления панели инструментов выберите CommandButton и поместите его в пользовательскую как кнопку Закрыть. Щелкните правой кнопкой мыши CommandButton, а затем выберите Просмотреть код в контекстном меню. Измените код CommandButton на следующий.
Private Sub Cmdclose_Click()
End
End Sub - Закройте окно программы.
- Щелкните правой кнопкой мыши CommandButton, затем выберите Свойства в контекстном меню. На вкладке По алфавиту переименуйте (Имя) на Cmdclose, затем переименуйте Заголовок на Закрыть. Закройте окно Свойства CommandButton.
Создание макроса
- В окне "Проект" выберите TemplateProject.
- В меню Insert выберите команду Module. Появится список кодов пустого модуля.
- Введите следующий код:
Sub gocombobox()
frmcombo.Show
End Sub
Создание текстового поля
- в шаблоне, в меню Вид выберите Панели инструментов и щелкните Формы.
- Поместите курсор в то местоположение, в которое необходимо ставить результат раскрывающегося списка. На панели инструментов Формы щелкните Текстовое поле (первая кнопка слева). Текстовое поле вставлено в шаблон с серым затенением.
Примечание. Если вы видите поле {FORMTEXT}, нажмите сочетание клавиш ALT+F9, чтобы отключить коды поля. - Щелкните правой кнопкой мыши Текстовое поле, затем выберите Свойства в контекстном меню.
- В диалоговом окне Параметры текстового поля в разделе Выполнить макрос выберите макрос gocombobox в текстовом поле Ввод: .
Примечание. Убедитесь в том, что имя закладки текстового поля совпадает с указанным на этапе 9 раздела "Создание поля со списком UserForm" этой статьи. - На панели Формы щелкните Защита формы.
- Сохраните и закройте шаблон.
Для использования шаблона в Word 2007 нажмите кнопку Microsoft Office, щелкните Новый, выберите шаблон, а затем щелкните Создать.
Появится новый документ, основанный на шаблоне. UserForm, содержащий ComboBox с вашими элементами, появится при использовании клавиши TAB для перемещения в следующее текстовое поле.