При работе в Excel, как и в большинстве, других приложениях, приходиться сталкиваться с такими элементами интерфейса, как диалоговые окна. Диалоговые окна используются повсеместно для получения информации для ввода и вывода сообщений и данных.
Одним из объектов VBA, объектом визуализации являются UserForm -
пользовательские формы.
Пользовательские формы UserForm - это диалоговые окна интерфейса процедур VBA. С их помощью пользователь может эффективно передавать данные в процедуры и получать результаты их работы.
Пользовательские формы дают возможность пользователю создавать диалоговые окна в разрабатываемых приложениях и размещать в окнах элементы управления.
В VBA есть две функции – MsgBox и InputBox, которые позволяют отображать простые диалоговые окна, не создавая пользовательскую форму. Эти окна можно видоизменять, использовать управляющие ими параметры, но они не имеют тех широких и эффективных возможностей, опций которые предоставляют пользовательские формы.
VBA предлагает обширные возможности, которые можно использовать при создании пользовательских диалоговых окон, для программирования элементов управления, размещаемых непосредственно на листах Excel, или для работы с диалоговыми окнами, встроенными в Excel.
Задание 1. Создание пользовательской формы
Чтобы создать форму, запустите приложение MS Excel, откройте редактор Visual Basic для этого нажмите (Alt + F11) или выберете на ленте вкладку «Разработчик», а на ней Visual Basic см. рис.1
Рис. 1.
В открывшемся окне Microsoft Visual Basic см. рис. 2 выбрать на ленте вкладку Insert. В открывшемся меню выбрать UserForm.
Рис. 2
На экране появилась пустая форма UserForm1 см. рис.3, инструментальная панель Toolbox и при нажатии правой кнопки мыши контекстное меню с предложением Properties – свойства формы.
Рис.3
Элементы управления
На инструментальной панели Toolbox см. рис.3 расположены следующие элементы управления, которые являются объектами VBA:
TextBox - поле, Label - надпись,
CommandButton - кнопка, ListBox - список,
ComboBox - поле со списком, ScrollBar - полоса прокрутки, SpinButton - счетчик, OptionButton - переключатель,
CheckBox - флажок, ToggleButton - выключатель, Frame - рамка,
Image - рисунок,
RefEdit - RefEdit, MultiPage - набор страниц.
Любой из этих элементов управления, объектов можно разместить на форме. Например, можно поместить кнопку. Для этого мышью перетаскиваем на форму объект или элемент управления под названием CommandBatton, расположенный вторым слева в третьем ряду панели Toolbox. На форме появиться кнопка CommandBatton1 см. рис. 4.
Рис. 4
Выбрав в контекстном меню см. Рис. 3 Properties- свойства формы, в открывшемся окне см. рис. 5, можно изменить заголовок элементов формы, в частности кнопки, её шрифт, цвет фона, добавить картинки, добавить и изменить многие другие свойства.
Наиболее часто используемые свойства объекта UserForm: Name - возвращает имя пользовательской формы,
Caption - возвращает текст, отображаемый в строке заголовка формы, BackColor - возвращает цвет фона формы,
BorderStyle - устанавливает тип границы,
Picture - указывает рисунок, отображаемый как фон формы.
Рис.5
Связь пользовательской формы с процедурой
Осталось разобраться, как привязать к форме, а именно к созданной кнопке, программный код, процедуру. Выполняется это так: после двойного щелчка по кнопке откроется окно редактора VBA, где уже будет создана заготовка вашей процедуры обработки нажатия на кнопку см. рис. 6.
Теперь в тело этой процедуры можно вводить команды (операторы), которые будут выполняться, если событие в заголовке - Click мыши - произойдет. Это событие считается стандартным для кнопок, флажков, рисунков, рамок, переключателей и окон отображения текста. Для остальных элементов - полей ввода текста, полос прокрутки, счетчиков и др. - стандартным считается событие Change, то есть их изменение.
Список возможных событий для элемента можно получить, поставив курсор внутрь процедуры и выбрав, нужное из верхнего правого выпадающего меню. В верхнем левом выпадающем меню указаны все процедуры и функции программы реакции формы на события см. рис. 6.
Рис. 6
Достарыңызбен бөлісу: |