…???…
Рис. 2.5. Вставка рисунка. на форму
…???…
Рис. 2.6. Выпадающее меню Окна свойств — навигатор по элементам формы
Среди наиболее распространенных свойств, имеющихся почти у всех элементов — Caption(т. е. надпись на поверхности или в заголовке, если он есть), Topи Left— координаты верхнего левого угла элемента, Heightи Width— высота и ширина, Enabled— доступность для изменений пользователем, TabIndex— число, показывающее, в какую очередь на данный элемент перейдет фокус (т. е. возможность изменения пользователем содержания или состояния) при переходах между элементами с помощью клавиши табуляции (можно запретить такой переход на какой-либо элемент, указав его свойство TabStopкак False). Обратите внимание на свойства Picture, PictureAlignment, PictureSizeMode, PictureTilingсобственно формы — с их помощью на поверхность формы можно поместить какой-нибудь фоновый рисунок.
Необходимо помнить, что создание элемента — только начало работы над формой. Сам по себе элемент никаких действий не выполняет, за исключением тех, которые его определяют. Кнопка — нажимается под мышкой или Enter'ом, список показывает значения, во флажке можно поставить и убрать галку, но не более того! Для того, чтобы элемент выполнял какое-нибудь действие при действии с ним, нужно написать для него программу реакции на события.
Событий, могущих произойти с элементом, много. Это и двойной щелчок мыши на нем, это и проводка мыши над ним, это и ввод текста в поле ввода, это и нажатие на вкладке, это и переход к другому элементу… Для того, чтобы написать программу обработки реакции на событие, нужно два раза щелкнуть на элементе. Откроется окно написания программ реакций на события, и автоматически написанная заготовка будет иметь вид:
Private Sub CommandButton1_Click()
End Sub
Теперь в текст этой процедуры можно вводить команды, которые выполнятся, если событие в заголовке — Click мыши — произойдет. Это событие считается стандартным для кнопок, флажков, рисунков, рамок, переключателей и окон отображения текста. Для остальных элементов — полей ввода текста, полос прокрутки, счетчиков и др. — стандартным считается событие Change, то есть их изменение.
Список возможных событий для элемента можно получить, поставив курсор внутрь процедуры обработки стандартного события и выбрав нужное из выпадающего меню справа вверху окна написания программы. В выпадающем меню слева вверху этого окна указаны все процедуры и функции программы реакции формы на события (рис. 2.7).
…???…
Рис. 2.7. Выпадающий список событий.
В программе реакции формы на события могут быть и другие процедуры и функции, не связанные с элементами формы.
У некоторых событий есть параметры, с которыми информация о его происшествии передается программе. Так, процедура обработки события KeyDown (то есть нажатия какой-либо клавиши тогда, когда активен данный элемент) имеет вид
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
End Sub
Переменная KeyCode будет после срабатывания данной процедуры будет иметь значение, равное коду нажатой клавиши, а переменная Shift — 1, если соответствующая клавиша была нажата, и 0, если нет. Эти переменные можно использовать в процедуре.
Все свойства, задаваемые в Окне свойств, можно изменять и из программы. Например, команда TextBox1.Enabled=Trueдаст возможность пользователю ввести текст в поле ввода TextBox1, а команда CheckBox1.Value=Falseуберет отметку из флажка с именем CheckBox1. Эта возможность делает формы VBA динамическими — то есть содержимое форм может меняться немедленно в ответ на действия пользователя без выгрузки и повторной загрузки формы.
Форма может работать как обычное диалоговое окно программы для Windows, — например, выбор пользователем значения из списка может каждый раз выводить в какой-нибудь из допускающих такой вывод элементов формы определенный текст, разный для разных выбранных значений.
Наиболее часто возможность создания динамических форм используется для инактивации элементов, не могущих быть использованными при каких-либо условиях. К примеру, в форме, состоящей из поля ввода текста и кнопки, вызывающей процедуру вычисления квадратного корня, кнопка может становиться неактивной и не реагирующей на нажатия, если число, введенное в поле ввода, отрицательное.
Для просмотра формы в режиме выполнения (то есть так, как она будет выглядеть в готовой программе) надо нажать клавишу F5 — ту же, что и для запуска на выполнение обычной программы. Все средства отладки, описанные выше, работают и при отладке форм.
Читать дальше