- •Лекция 8. Пользовательские формы
- •Пользовательские формы
- •Свойства пользовательской формы
- •Методы пользовательской формы
- •События пользовательской формы
- •Управляющие элементы
- •События управляющих элементов
- •Примеры разработки пользовательских форм
- •Поиск в диапазоне ячейки с заданным значением
- •Поиск в диапазоне ячейки с заданным значением с учётом регистра
- •Добавление нового сотрудника
- •Использование управляющих элементов на рабочем листе
- •Стандартные диалоговые окна
- •Функция vba InputBox
- •Метод InputBox объектаApplication
- •Функция vba MsgBox
Лекция 8. Пользовательские формы
Пользовательские формы
Большинство способов запуска процедуры позволяют вызвать только процедуру, не имеющую параметров. Например, в диалоговом окне Макросне отображаются процедуры, требующие передачи параметров. Это происходит из-за того, что большинство способов вызова процедуры не имеют возможностей для передачи параметров. Процедуру с параметрами можно вызвать только из другой процедуры. Обычно в качестве такой вызывающей процедуры используется процедура, связанная с каким-либо событием. В подавляющем большинстве случаев таким событием является нажатие кнопки. Для задания параметров используются так называемыеуправляющие элементы, которые могут быть размещены как на рабочем листе, так ипользовательской форме. Пользовательская форма – это диалоговое окно, содержащее управляющие элементы, которые позволяют вводить данные различных типов и инициализировать вызов процедур.
Пользовательская форма, как и любой объект, имеет свойства, методы и события.
Свойства пользовательской формы, а также управляющих элементов, можно менять при разработке формы в окне Propertiesили в процессе работы программы с помощью инструкций языка VBA.
Свойства пользовательской формы
Свойства пользовательской формы позволяют управлять её позицией на экране, размерами, цветом фона и текста, наличием полос прокрутки и т.п. Рассмотрим основные свойства пользовательской формы.
Свойство |
Описание |
Name |
Позволяет задать имя объекта, которое должно отражать назначение пользовательской формы. |
Caption |
Позволяет задать заголовок пользовательской формы. |
Font |
Позволяет задать шрифт, который будет использоваться в управляющих элементах формы (по умолчанию – 8, мелковато). |
StartUpPosition |
Позволяет задать исходную позицию формы (по умолчанию установлено удобное значение CenterOwner). |
ShowModal |
Определяет, будет ли форма модальной или нет (модальные формы не позволяют переключаться на другие объекты до их закрытия). |
Методы пользовательской формы
Пользовательская форма имеет два основных метода – ShowиHide, которые позволяют отобразить и скрыть пользовательскую форму. Однако для закрытия пользовательской формы обычно используют процедуруUnload.
UserFormNewStudent.Show
UserFormNewStudent.Hide
Unload UserFormNewStudent
Unload Me
События пользовательской формы
Событие |
Событие происходит |
Initialize |
Перед загрузкой пользовательской формы. |
Activate |
При активации пользовательской формы. |
Deactivate |
При деактивации пользовательской формы. |
QueryClose |
Перед закрытием пользовательской формы. Параметры процедуры для этого события позволяют отменить закрытие формы. |
Terminate |
После закрытия пользовательской формы. |
Управляющие элементы
Как было сказано, управляющие элементы позволяют вводить данные различных типов и инициализировать действия по обработке этих данных.
Есть несколько свойств, которые актуальны для любого управляющего элемента.
Свойство |
Описание |
Name |
Имя элемента. Как любое уважающее себя имя должно отражать смысл элемента. |
Enabled |
Определяет активность элемента. Если это свойство имеет значение false, то элемент неактивен – он становится «тусклым» и не реагирует на мышь и клавиатуру. |
Visible |
Определяет видимость элемента. Если это свойство имеет значение false, то элемент становится невидимым. |
Font |
Шрифт для отображения текста надписи или содержимого управляющего элемента. |
Также все элементы имеют высоту и ширину, и для всех элементов задаётся позиция на форме. Однако эти свойства обычно редактируются не в окне Properties, а с помощью мыши.
Метка
Одним из самых простых элементов является метка(Label). Этот элемент позволяет отобразить текст на форме.
Свойство |
Описание |
Caption |
Отображаемый текст. |
Текстовое поле
Текстовое поле(TextBox) позволяет пользователю вводить текст.
Свойство |
Описание |
MaxLength |
Максимальное количество символов, которые может ввести пользователь. |
Value |
Текст элемента. |
Кнопка
Кнопки(CommandButton) используются для инициализации пользователем каких-либо действий.
Свойство |
Описание |
Caption |
Надпись на кнопке. |
Кнопка-флажок
Кнопка-флажок(CheckBox) позволяет пользователю делать выбор из двух возможностей.
Свойство |
Описание |
Caption |
Надпись. |
Value |
Если свойство имеет значение true, то элемент отмечен галочкой. |
Кнопка-переключатель
Кнопки-переключатели(OptionButton) позволяют пользователю выбирать одну и только одну из нескольких возможностей.
Свойство |
Описание |
Caption |
Надпись. |
Value |
Свойство имеет значение true, если элемент выбран. |
GroupName |
Позволяет разделить кнопки-переключатели формы на несколько групп. |
Выпадающий список
Выпадающийсписок(ComboBox) позволяет пользователю выбрать одну из нескольких возможностей или ввести свой вариант.
Свойство |
Описание |
MaxLength |
Максимальное количество символов, которые может ввести пользователь. |
RowSource |
Диапазон рабочего листа, из которого берутся элементы выпадающего списка. |
Value |
Выбранный элемент выпадающего списка или ведённый пользователем текст. |
Рамка
Рамка(Frame) позволяет объединить несколько элементов в группу.
Свойство |
Описание |
Caption |
Заголовок группы. |
Поле выбора диапазона
Поле выбора диапазона(RefEdit) – уникальный управляющий элемент. Подобные управляющие элементы (в отличие от предыдущих рассмотренных элементов) не встречаются в других средах разработки приложений. Назначение этого элемента очевидно – он предоставляет возможность выбора диапазона ячеек рабочего листа с помощью мыши.
Свойство |
Описание |
Value |
Текст с именем выбранного диапазона. |
Порядок обхода
Нажатие клавиши Tabприводит к передаче фокуса от одного элемента формы к другому. Порядок этой передачи определяется так называемымпорядком обхода. Все управляющие элементы имеют свойстваTabIndexиTabStop. СвойствоTabStopопределяет, будет ли передаваться этому элементу фокус при нажатии клавиши Tab. СвойствоTabIndexопределяет позицию управляющего элемента в порядке обхода. Изначально порядок обхода соответствует порядку создания элементов формы. При необходимости изменить порядок обхода можно отредактировать свойствоTabIndexэлементов формы или воспользоватьсяредактором порядка обхода. Для вызова этого редактора необходимо щёлкнуть на форме правой кнопкой мыши и из появившегося контекстного меню выбрать пунктTab Order.