Объекты VBA. По своей сути форма (или пользовательская форма) представляет собой диалоговое окно, в котором можно размещать различные элементы управления. В приложении может быть как одна, так и несколько форм. Новая форма добавляется в проект выбором команды Вставка (Insert) ® UserForm.
Одним из основных понятий VBA является объект. В VBA имеется более 100 встроенных объектов (рабочие книги (WorkBook), рабочие листы (WorkSheet), рабочие ячейки (Cell), формы (UserForm), элементы управления (TextBox, CommandButton, Label и др.), диалоги и т. д.).
В VBA имеется обширный набор встроенных элементов управления. Используя этот набор и редактор форм, нетрудно создать любой пользовательский интерфейс, который будет удовлетворять всем требованиям, предъявляемым к интерфейсу в среде Windows. Элементы управления являются объектами. Как любые объекты, они обладают свойствами, методами и событиями. Элементы управления создаются при помощи Панели элементов, которая отображается на экране либо выбором команды Вид (View) ® Панель элементов (Toolbox), либо нажатием кнопки панели инструментов Standard. На этой панели представлены кнопки, позволяющие конструировать элементы управления. Для создания элементов управления служат все кнопки панели инструментов, за исключением кнопки Выбор объекта
. Щелкнув по кнопке Выбор объекта, можно выбрать уже созданный в форме элемент управления для последующего его редактирования (изменения размеров или редактирования).
Список основных элементов управления и соответствующих кнопок панели элементов приведен в таблице 10.
Таблица 10 – Элементы управления
Элемент управления | Имя | Кнопка, его создающая |
Поле | TextBox | ![]() |
Надпись | Label | ![]() |
Кнопка | CommandButton | ![]() |
Список | ListBox | ![]() |
Поле со списком | ComboBox | ![]() |
Полоса прокрутки | ScrolBar | ![]() |
Счетчик | SpinButton | ![]() |
Переключатель | OptionButton | ![]() |
Флажок | CheckBox | ![]() |
Выключатель | ToggleButton | ![]() |
Рамка | Frame | ![]() |
Рисунок | Image | ![]() |
Набор страниц | MultiPage | ![]() |
Для размещения элемента управления на лист или в форму необходимо нажать соответствующую кнопку на панели элементов и с помощью мыши перетащить рамку элемента управления в нужное место. После этого элемент управления можно перемещать, изменять его размеры, копировать в буфер обмена, вставлять из буфера обмена и удалять из формы.
Свойства объектов. Каждый объект обладает некоторыми характеристиками, или свойствами. Изменяя свойства, можно менять характеристики объекта. Таким образом, свойство представляет собой атрибут объекта, определяющий его характеристики, такие, как размер, цвет, положение на экране и состояние объекта, например доступность или видимость.
Синтаксис применения свойства:
Объект.Свойство
Основные общие свойства элементов управления приведены в таблице 11.
Таблица 11 – Общие свойства элементов управления
Свойство | Описание |
Caption | Надпись, отображаемая при элементе управления |
AutoSize | Допустимые значения: True (устанавливает режим автоматического изменения размеров элемента управления так, чтобы на нем полностью помещался текст, присвоенный свойству Caption) и False (в противном случае) |
Visible | Допустимые значения: True (элемент управления отображается во время выполнения программы) и False (в противном случае) |
Enabled | Допустимые значения: True (пользователь вручную может управлять элементом управления) и False (в противном случае) |
Height и Width | Устанавливают геометрические размеры объекта (высоту и ширину) |
Left и Top | Устанавливают координаты верхнего левого угла элемента управления, определяющие его местоположение в форме |
ControlTipText | Устанавливает текст в окне всплывающей подсказки, связанной с элементом управления. В следующем примере элементу управления CommandButton назначен текст, всплывающей подсказки это кнопка: CommandButton1.ControlTipText = "Это кнопка" |
BackColor, ForeColor BorderColor | Устанавливают цвет заднего и переднего плана элемента управления, также его границы |
Продолжение таблицы 11
Свойство | Описание |
BackStyle | Устанавливает тип заднего фона |
BorderStyle | Устанавливает тип границы. Допустимые значения: fmBorderStyleSingle (граница в виде контура); fmBorderStyleNone(граница невидима) |
Picture (создание картинки) | Внедряет картинку на элемент управления. Например, на поверхности кнопки картинка отображается с помощью следующей инструкции: CommandButton1. _ Picture =LoadPicture("с:\my doc\Kpyг.bmp") Функция LoadPicture(ПолноеИмяФайла) считывает графическое изображение. Аргумент ПолноеИмяФайла указывает полное имя графического файла |
Picture (удаление картинки) | После того как картинка создана на элементе управления, иногда возникает необходимость ее удалить. Это легко достигается присвоением свойству Picture значения LoadPicture("") CommandButton1.Picture = LoadPicture("") |
Описание назначения элементов управления и наиболее часто используемые свойства приведены в таблице 12.
Таблица 12 – Свойства элементов управления
Свойство | Описание |
TextBox (поле) используется для ввода текста пользователем или для вывода в него результатов расчетов программ | |
Text | Возвращает текст, содержащийся в поле |
Multiline | Допустимые значения: True (устанавливает многострочный режим ввода текста в поле) и False (однострочный режим) |
WordWrap | Допустимые значения: True (устанавливает режим автоматического переноса) и False (в противном случае) |
Label(надпись) используется для отображения надписей, например, заголовков элементов управления, не имеющих свойства Caption | |
Caption | Возвращает текст, отображаемый в надписи |
Multiline | Допустимые значения: True (устанавливает многострочный режим ввода) и False (однострочный режим) |
WordWrap | Допустимые значения: True (устанавливает режим автоматического переноса) и False (в противном случае) |
Продолжение таблицы 12
Свойство | Описание | |
CommandButton (кнопка) используется для инициирования выполнения некоторых действий, вызываемых нажатием кнопки, например запуск программы или остановка ее выполнения, печать и т.д. | ||
Caption | Возвращает текст, отображаемый на кнопке | |
Cancel | Допустимые значения: True (устанавливаются отменяющие функции для кнопки, т.е. нажатие клавиши <Esc>приводит к тем же результатам, что и нажатие кнопки) и False (в противном случае) | |
Accelerator | Назначает клавишу, при нажатии на которую одновременно с клавишей <Alt> происходит запуск действий, связанных с кнопкой. Например CommandButton1.Accelerator=”C” | |
Default | Задаёт кнопку по умолчанию, т.е. устанавливает ту кнопку, для которой действия, связанные с ней, будут выполняться при нажатии клавиши <Enter> | |
Frame (рамка) используется для визуальной группировки элементов управления | ||
Capture | Отображает надпись рамки | |
OptionButton (переключатель) позволяет выбрать один из нескольких взаимоисключающих параметров. Переключатели обычно отображаются группами, обеспечивая возможность выбора альтернативного варианта. | ||
Capture | Надпись, отображаемая рядом с переключателем | |
Value | Возвращает True, если переключатель выбран и False в противном случае | |
Метод. Объект содержит также список методов, которые к нему могут быть применены. Например, показать форму на экране или убрать его можно с помощью методов Show и Hide соответственно. Таким образом, метод представляет собой действие, выполняемое над объектом.
Синтаксис применения метода:
Объект.Метод
Из вышесказанного можно сделать вывод, что объект – это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства, и некоторые методы для управления объектом.
В таблице 13 перечислены основные общие методы элементов управления.
Таблица 13 – Основные общие методы элементов управления
Метод | Описание |
Add | Позволяет добавить элемент управления во время выполнения программы |
Move | Перемещает элемент управления |
SetFocus | Устанавливает фокус на вызвавшем этот метод элементе управления. |
Zorder | Помещает объект до или после всех пересекающихся с ним объектов |
Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши), для которого можно запрограммировать отклик. События возникают в результате действий пользователя программы, или же они могут быть вызваны системой.
К событиям относятся, например, процедуры Initialize, Load, Click и DblClick. Эти процедуры имеют следующий синтаксис:
Sub UserForm_Событие()
Последовательность инструкций
End Sub
Например, процедура загрузки формы с отображением ее на экране:
Sub UserForm_Load()
Show
End Sub
В таблице 14 приведены события элементов управления, для которых можно создать процедуры обработки событий. Каждый элемент управления, который вы добавите в свою форму, будет иметь доступ к этим событиям.
Таблица 14 – События элементов управления
Событие | Описание |
Click | Происходит, когда пользователь выбирает элемент управления с помощью одинарного щелчка кнопкой мыши |
DblClick | Происходит, когда пользователь выбирает элемент управления с помощью двойного щелчка кнопкой мыши |
Change | Происходит при изменении значения элемента управления |
GotFocus | Происходит, когда элемент управления получает фокус |
LostFocus | Происходит, когда элемент управления теряет фокус |
Error | Используется при уведомлении об ошибке |
Exit | Происходит, когда с элемента управления снимается выделение |
В VBA очень просто связать объект с кодом. Для выполнения данной операции необходимо дважды щелкнить по элементу управления в форме. Появляется окно модуля для выбранного объекта в котором необходимо выбрать событие для которого требуется создать процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля и ввести текст процедуры.