Создав форму (из меню правой кнопки мыши в Менеджере проектов выберите Вставить-UserForm) или дважды щелкнув на имени существующей формы, можно попасть в окно Дизайна форм. На появившейся панели инструментов 'Панель управления' (если ее нет, то ее можно вызвать из меню Вид- Панель элементов) представлены все возможные элементы формы (рис. 2.4):
…???…
Рис. 2.4.
1. Поле отображения текста — отображает текстовую информацию. Просто текст на форме — совет пользователю, к примеру.
2. Поле ввода текста — дает пользователю возможность ввести текстовую информацию. Потом введенные данные можно обрабатывать в программе.
3. Несколько видов списков — средства выбора одного варианта из нескольких представленных, вроде выпадающего списка шрифтов на панели инструментов «Форматирование» в Word.
Значения элементов списков задаются только в программе — при разработке формы с помощью окна 'Дизайн форм' их задать нельзя.
4. Флажок — элемент, который независимо от других может находиться в трех состояниях: включенном, выключенном (могут быть определены как пользователем, так и программистом) и неактивном (определяется программой).
5. Переключатель — элемент, который также может находиться во включенном, выключенном и неактивном состояниях. В отличие от флажка, переключатели должны быть обьединены в группы с помощью элемента № 7 — рамки — и, если один из переключателей в группе включен, то остальные включены быть не могут.
В Microsoft Word имеются диалоговые окна, содержащие как флажки, так и переключатели. Так, почти все вкладки меню Сервис-Параметры состоят из флажков, а меню Вставка-Сноска — из переключателей.
6. Выключатель. Это кнопка, которая может находиться в нажатом или отжатом состоянии. Например, в Microsoft Word так себя ведут кнопки показа скрытых символов или форматирования текста курсивом, жирным шрифтом, подчеркиванием.
7. Рамка. Отображает прямоугольник с заголовком. В основном используется для обьединения групп переключателей (тех, что под номером 5 в нашем списке). В одной форме может быть несколько рамок и, как следствие, несколько групп переключателей, могущих действовать независимо друг от друга.
8. Командная кнопка. Обычная командная кнопка вроде кнопок «Ok» или «Отмена» в любом диалоговом окне.
9. Набор вкладок и 10. Набор страниц. Представляют из себя набор страничек-вкладок вроде вкладок «Общие», «Сохранение», «Печать» и др. в диалоговом окне Word Сервис-Параметры. Отличие между этими двумя элементами состоит в том, что 9-й элемент при переключении на другую страничку совершенно не затрагивает другие элементы формы, даже и находящиеся на нем, и изменения в состоянии других элементов можно эадать только программно. 10-й же элемент при своем переключении принудительно (т. е. вне зависимости от программы) скрывает элементы на одной своей странице и показывает элементы на другой.
Если привести пример, то 9-й элемент может использоваться в программе — базе данных, отображая вкладки с именами сотрудников. На каждого сотрудника имеется стандартная информация в нескольких полях отображения текста, и количество этих полей для всех одинаково. В этом случае разумнее использовать именно 9-й элемент, соответственно изменяя содержимое полей отображения текста при переключении вкладок, чем создавать с помощью 10-го элемента набор страничек с отдельными полями отображения текста на каждой, что приведет к резкому увеличению и усложнению программы.
К сожалению, в настоящее время не сложилась твердая номенклатура этих двух элементов форм VBA, поэтому в справочной системе, в различной литературе можно встретить разные названия для каждого из них.
11. Полоса прокрутки. Такая же, как и в окне Word. Может передавать в программу число, равное расстоянию в пунктах от ее начала. Верхний предел расстояния неограничен.
12. Счетчик. Две нажимающиеся кнопки со стрелками. Может передавать в программу свое значение от 1 до 100.
13. Рисунок. В этот элемент можно вставить из файла рисунок, который будет храниться в форме (и шаблоне или документе с ней). Для вставки самого рисунка нужно после помещения на форму элемента управления Рисунок в Окне свойств выбрать пункт «Picture», нажать на кнопку слева от него и в появившемся окне открытия файла выбрать нужную картинку — рис. 2.5.
У каждого элемента имеется свое уникальное имя, а также набор свойств. Их можно посмотреть в Окне свойств, выделив элемент и выбрав из контекстного меню правой кнопки мыши пункт «Свойства».
Стоит внимательно изучить все возможные свойства для каждого элемента, по возможности осознав их предназначение. При необходимости можно вызвать справку по каждому свойству, поставив на него курсор и нажав F1.
Большой набор свойств также имеет сама форма. С помощью выпадающего меню в Окне свойств можно быстро перейти к свойствам необходимого элемента (рис. 2.6).
…???…
Рис. 2.5.
…???…
Рис. 2.6.
Среди наиболее распространенных свойств, имеющихся почти у всех элементов — Caption (т. е. надпись на поверхности или в заголовке, если он есть), Top и Left — координаты верхнего левого угла элемента, Height и Width — высота и ширина, Enabled — доступность для изменений пользователем, TabIndex — число, показывающее, в какую очередь на данный элемент перейдет фокус (т. е. возможность изменения пользователем содержания или состояния) при переходах между элементами с помощью клавиши табуляции (можно запретить такой переход на какой-либо элемент, указав его свойство TabStop как False). Обратите внимание на свойства Picture, PictureAlignment, PictureSizeMode, PictureTiling собственно формы — с их помощью на поверхность формы можно поместить какой-нибудь фоновый рисунок.
Необходимо помнить, что создание элемента — только начало работы над формой. Сам по себе элемент никаких действий не выполняет, за исключением тех, которые его определяют. Кнопка — нажимается под мышкой или Enter'ом, список показывает значения, во флажке можно поставить и убрать галку, но не более того! Для того, чтобы элемент выполнял какое-нибудь действие при действии с ним, нужно написать для него программу реакции на события.
Событий, могущих произойти с элементом, много. Это и двойной щелчок мыши на нем, это и проводка мыши над ним, это и ввод текста в поле ввода, это и нажатие на вкладке, это и переход к другому элементу… Для того, чтобы написать программу обработки реакции на событие, нужно два раза щелкнуть на элементе. Откроется окно написания программ реакций на события, и автоматически написанная заготовка будет иметь вид:
Private Sub CommandButton1_Click()
End Sub
Теперь в текст этой процедуры можно вводить команды, которые выполнятся, если событие в