- •Организация человеко-машинного интерфейса. Событийное программирование. Работа с формами vba
- •Формы как объект
- •Преимущества использования форм
- •ObjName_ИмяСобытия()
- •События, используемые по умолчанию
- •Порядок создания форм
- •Окно свойств
- •Некоторые стандартные элементы управления
- •Пример создания формы
-
Некоторые стандартные элементы управления
Название элемента управления
Описание
Основные свойства
Основные события
Надпись Label
Используется для помещения статического текста в форму. Обеспечивает пояснения для тех элементов управления, которые не имеют собственных надписей
Caption – заголовок, текст, отображающийся при загрузке формы.
Name – уникальное имя элемента управления, с ним работает программа. Устанавливается в окне свойств.
BackColor – цвет заднего фона.
ForeColor –цвет шрифта.
Width – ширина элемента управления.
Height – высота элемента управления.
Left и Top – координаты верхнего левого угла.
AutoSize –автоматическое увеличение размера по мере ввода теста
WordWrap. Если WordWrap =True, при вводе текста возможен перенос по строкам. Если WordWrap =False, при вводе текста идет расширение по горизонтали.
Click – событие, генерирующееся при одинарном щелчке мыши
Текстовое поле TextBox
Предназначается для ввода данных. Может состоять из одной или нескольких строк.
Name
Value – данные помещаемые в поле.
Enabled – хранит значение типа Boolean. Если свойство Enabled=False, элемент управления отображается в форме, но является недоступным (нельзя изменить его значение).
Например,
TextBox1.Enabled=False
BackColor, ForeColor, Width, Height, Left Top, AutoSize, WordWrap
Change – вызывается при изменении значения элемента управления.
AfterUpDate – вызывается после обновления значения поля.
Enter – вызывается всегда, когда элемент управления получает фокус.
Exit – вызывается всегда, когда элемент управления теряет фокус.
Командная кнопка CommandButton
При щелчке выполняет действия, запрограммированные в обработчике события
Caption, Name
ForeColor, BackColor и другие свойства форматирования.
Click – событие, генерирующееся при одинарном щелчке мыши
DblClick – событие, генерирующееся при двойном щелчке мыши
Флажок CheckBox
Используется для выбора параметров, принимающих значение вкл/выкл (истина/ ложь). Параметры не являются взаимоисключающими.
Caption, Name, Enabled, Value
Если Checkbox.Value=True – флажок поднят.
Change
Переключатель OptionButton
Используется для выбора параметров, которые не только принимают значение вкл/выкл (истина/ ложь)но и являются взаимоисключающими.
Caption, Name, Enabled, Value
Если OptionButton.Value=True переключатель включен.
Change
Список ListBox
Отображает список значений, из которых пользователь осуществляет выбор. Можно разрешить выбор одного или нескольких значений.
Caption, Name, Enabled
Value – возвращает выбранное из списка значение.
RowSource – указывает источник списка (обычно диапазон рабочего листа, например, А1:С10).
ListBox1.RowSource= А1:С10
Если свойство Sorted=True – элементы в списке располагаются в алфавитном порядке.
MultiSelect.
Если MultiSelect=0 – возможен выбор одного значения;
Если MultiSelect=1 – возможен выбор нескольких значений, но каждое выбирается отдельным щелчком;
Если MultiSelect=2 – “продленное ” – выделение сплошного диапазона значений.
List – массив типа Variant (одномерный или двумерный), который представляет список, содержащийся в элементе управления. Например, чтобы узнать значение второй строки в списке My_List используется оператор
Имя_переменной= My_List.List(1).
Нумерация элементов в списке ведется с 0.
ListIndex – возвращает номер выбранного элемента в списке.
Например,
k=ListBox1. ListIndex ’переменной k присваивается номер выбранного в списке элемента
ListCount – возвращает число элементов в списке.
Columns – определяет количество колонок в списке.
Change
Основные методы элементов управления ListBox и ComboBox
Obj.AddItem “элемент списка” [,index] – добавляет элемент в список [в указанное положение].
Например,
ListBox1.AddItem “Петров”
Obj.RemoveItem – удаляет элемент из списка.
Поле со списком ComboBox
Объединяет в себе поле и список. Можно разрешить пользователю вводить в поле свои значения, отсутствующие в списке, а можно ограничить его выбор только тем, что есть в списке.
Style
Если Style=0 – элемент выглядит как поле с раскрывающимся списком и возможен ввод пользовательских данных.
Если Style=1– элемент выглядит как поле со списком и возможен ввод пользовательских данных.
Если Style=2 элемент выглядит как поле с раскрывающимся списком и пользователь не может вводить свои данные (только для чтения).
Остальные свойства такие же как для ListBox.
См. ListBox
Счетчик SpinButton
Используется для ввода числовых данных или других последовательных значений, относящихся к конкретному диапазону. Если объединить этот элемент управления с текстовым полем (надписью), появляется возможность альтернативного ввода данных. В этом случае необходимо создавать процедуру, синхронизирующую работу обоих объектов.
Name, Value
Min – значение типа Long, определяющее минимальное значение счетчика.
Max– значение типа Long, определяющее максимальное значение счетчика
SmallChange – шаг счетчика. Для просмотра значения этот элемент управления обычно используется вместе с текстовым полем или надписью.
Change
SpinDown – генерируется при начатии на верхнюю кнопку элемента управления (увеличение значения)
SpinUp генерируется при начатии на нижнюю кнопку элемента управления (уменьшение значения)
-
Пример создания формы
Создать форму для удобной работы с базой данных о служащих. В форму заносятся данные о служащем (ФИО, должность (выбирается из списка), пол (указывается с помощью переключателя), оклад (назначается в пределах от 2 до 17 тыс.)). При нажатии на кнопку данные о служащем переносятся на лист и форма очищается.
В готовом виде форма должна выглядеть так:
Добавив форму в окно проекта, в окне свойств изменяем свойство Caption на «Личная карточка служащего». Добавляем нужные элементы управления: поясняющие надписи, TextBox для ввода фамилии, ComboBox для выбора должности, TextBox и SpinButton для назначения оклада, OptionButton для выбора пола.
Даем часто используемым элементам управления осмысленные имена (в окне свойств).
Р аскрывающийся список с должностями заполняется каждый раз, когда запускается форма. В этот момент генерируется событие Initialize. Для добавления элементов в список используем метод AddItem.
Заполнить список можно другим способом (исключающим метод AddItem), используя свойство Source, если на рабочем листе имеются элементы списка, например, так:
Для счетчика оклада Counter в окне свойств устанавливаем пределы изменения:
Свойство Min = 5000
Свойство Max = 27000
Шаг изменения, по умолчанию, берется равным 1, мы его изменим SmallChange = 500.
Чтобы визуально проследить за изменением значения счетчика, необходимо это значение послать в текстовое поле many.
Значение счетчика изменяется при наступлении событий SpinDown и SpinUp. Но чтобы не обрабатывать эти события отдельно, отследим событие Change – изменение значения элемента управления. Каждое изменение счетчика должно отображаться с текстовом поле “many”.
При нажатии на кнопку «Сохранить», необходимо данные изо всех элементов управления записать на лист. При этом важно, чтобы каждая новая запись не затирала предыдущую, а записывалась на строку ниже. Поэтому будем использовать свойство объекта CurrentRegion для определения количества заполненных строк на рабочем листе.
Процедура обработки нажатия кнопки «Сохранить»: