Формы и элементы управления. Событийные процедуры.




 

Форма является объектом UserForm, обладающим большим количеством свойств, методов и событий, позволяющих контролировать ее внешний вид и функционирование.

Объектная модель форм включает следующие объекты и семейства:

· ·объект UserForm инкапсулирует в себе данные о самой форме;

· · семейство controls содержит в себе все элементы управления, перечисленные выше, расположенные на форме

· ·объект Font устанавливает шрифт

· ·объекты MultiPage и TabStrip являются контейнерами для семейств Pages и Tabs (страницы и вкладки)

· · объект DataObject инкапсулирует в себе перемещаемые отформатированные текстовые данные

 

Таблица 1. Стандартные элементы управления, включенные в VBA

Элемент управления Назначение
Label (надпись, метка) Позволяет создавать заголовки элементов управления, которые не имеют собственных встроенных заголовков
TextBox (текстовое поле) Окно редактируемого текста свободной формы для ввода данных. Может быть одно- и многострочным
ComboBox (поле со списком) Объединяет окно редактирования и окно списка
ListBox (список) Отображает список значений, из которых пользователь может сделать выбор
CheckBox (флажок) Стандартный флажок, который используется для выбора вариантов, не являющихся взаимоисключающими
OptionButton (переключатель) Стандартная кнопка-переключатель. Используется, когда пользователю необходимо сделать выбор между "включено/выключено"
ToggleButton (выключатель) Выключатели служат для той же цели, что и флажки, но выводят установки в виде кнопки, находящейся в "нажатом" или "отжатом" состоянии
Frame (рамка) Визуально и логически объединяет некоторые элементы управления (особенно флажки, переключатели и выключатели)
CommandButton (кнопка) Используется для выполнения таких действий, как Cancel (Отмена), Save (Сохранить), Ok и т.д. Когда пользователь щелкает по кнопке, выполняется VBA-процедура, закрепленная за данным элементом управления
TabStrip (набор вкладок) Состоит из области, в которую следует помещать другие элементы управления (такие, как текстовые поля, флажки и т.д.)
MultiPage (набор страниц) Состоит из нескольких страниц. Можно выбрать любую из них, щелкнув по соответствующей вкладке
ScrollBar (полоса прокрутки) Позволяет выбирать линейное значение, аналогичное тому, как это можно сделать при помощи счетчика
SpinButton (счетчик) Специальная разновидность текстового поля. Используется для ввода последовательных величин, которые заведомо находятся в определенном интервале значений (число, дата и т.п.)
Image (рисунок) Выводит на форме графическое изображение любом из следующих форматов: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wmf

Таблица 3. Основные общие методы элементов управления

Метод Описание
Add Позволяет добавить элемент управления во время выполнения программы
Move Перемещает элемент управления
SetFocus Устанавливает фокус на вызвавшем этот метод элементе управления. Часто применяется в программах обработки ошибок
Zorder Помещает объект до или после всех пересекающихся с ним объектов

 

Таблица 4. Наиболее часто используемые события объектов управления

Событие Описание
Click Происходит, когда пользователь выбирает элемент управления с помощью одинарного щелчка кнопкой мыши
DblClick Происходит, когда пользователь выбирает элемент управления с помощью двойного щелчка кнопкой мыши
KeyDown Происходит при нажатии пользователем какой-либо клавиши в тот момент, когда форма выполняется и имеет фокус
KeyPress Происходит, когда пользователь нажимает любую клавишу на клавиатуре, кроме функциональных и клавиш управления курсором
KeyUp Происходит, когда пользователь отпускает клавишу
Change Происходит при изменении значения элемента управления
GotFocus Происходит, когда элемент управления получает фокус
LostFocus Происходит, когда элемент управления теряет фокус
Error Используется при уведомлении об ошибке
MouseDown Происходит при нажатии кнопки мыши
MouseUp Происходит при отпускании кнопки мыши
MouseMove Происходит при перемещении указателя мыши
BeforeDragOver Происходит, пока совершается операция перемещения (drag-and-drop) элемента управления
BeforeDropOrPaste Происходит перед завершением операции перемещения (drag-and-drop) элемента управления
AddControl Происходит, когда к форме (или элементам Frame, Page или MultiPage) добавляется какой-либо элемент управления
AfterUpdate Происходит после обновления значения элемента управления
BeforeUpdate Происходит после того, как было изменено значение элемента управления, но перед тем, как был обновлен сам элемент управления
Enter Происходит, когда выделяется элемент управления
Exit Происходит, когда с элемента управления снимается выделение
Layout Происходит, когда изменяются размеры элемента Frame или MultiPage
SpinDown Происходит, когда пользователь щелкает стрелку "вниз" ("влево") кнопки счетчика
SpinUp Происходит, когда пользователь щелкает стрелку "вверх" ("вправо") кнопки счетчика

 


 

Объекты и коллекции VBA, которые используются для проектирования панелей команд (инструментов, меню, контекстного меню). Создание пользовательской панели инструментов. Типичные ошибки, возникающие при создании пользовательских панелей инструментов

 

.

Данные о панелях команд них инкапсулируются в объектах CommandBar, совокупности образуют семейство CommandBars.

 

Рассмотрим некоторые важные свойства и методы объекта CommandBar.

Þ Controls — через это свойство можно получить коллекцию элементов управления CommandBarControls, которая нам, скорее всего, потребуется для работы с кнопками или элементами меню.

Þ Enabled — включение или отключение панели.

Þ Height, Left, Top и Width — очевидные свойства, относящиеся к расположению панели в окне приложения.

Þ Index, Name и NameLocal — эти свойства позволяют найти нужную нам панель в коллекции CommandBars. Name — это программное имя объекта, NameLocal — имя, которое будет видно пользователю, Index — номер данной панели в коллекции.

 

Для создания элемента управления (кнопки в панели инструментов) метод Add() коллекции Controls объекта CommandBar. Этот метод принимает пять необязательных параметров, из которых первые два параметра очень важны. Первый параметр Type определяет тип передаваемого в коллекцию элемента управления. Таких типов пять:

Þ msoControlButton — кнопка (т. е. в итоге получится панель инструментов);

Þ msoControlEdit — поле для ввода текста;

Þ msoControlDropdown — раскрывающийся список;

Þ msoControlComboBox — комбинированный список;

Þ msoControlPopup — пункт меню.

 

Важнейшие свойства и методы объекта CommandBarButton приводятся далее.

Þ Caption — надпись на элементе управления. Для кнопки выводится в виде всплывающей подсказки, а для пункта меню — название пункта.

Þ Enabled — определяет, включен или отключен данный элемент управления. Обычно используется для предупреждения ошибок пользователя.

Þ FaceId (только для кнопок) — позволяет использовать системную картинку для кнопки (не назначая ей соответствующей функции). Например, значение 4 присвоит кнопке изображение принтера. В Word и Excel встроено несколько тысяч иконок, и поэтому вместо создания новой иконки всегда есть возможность подобрать готовую.

Þ OnAction — самое важное свойство элемента управления. Его значение используется, когда элемент управления активизируется (щелчок по кнопке или пункту меню, завершение ввода текста в текстовом поле, выбор нового значения в списке). Предназначено для указания запускаемой процедуры или внешнего приложения (COM Add In). Наример: But1.OnAction = "MySub"

 

Коллекция CommandBars содержит, как ясно из названия, набор объектов CommandBar (этот объект представляет как панели инструментов, так и меню), каждый из которых, в свою очередь, — коллекцию CommandBarControls, а эта коллекция представляет из себя хранилище элементов, из которых и состоит меню. Таких элементов может быть три:

Þ CommandBarButton — кнопка или элемент меню, который используется для выполнения программы или подпрограммы;

Þ CommandBarComboBox — сложный элемент меню или панели управления (это может быть поле ввода, раскрывающийся список, поле со списком);

Þ CommandBarPopup — меню или вложенное меню.

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

MenuKiller

End Sub

Private Sub MenuBuilder()

Dim cbMenuBar As CommandBar

Set cbMenuBar = Application.CommandBars.Add( _

Name:="МоястрокаМеню", _

Position:=msoBarTop, _

MenuBar:=True, _

Temporary:=True)

 

With cbMenuBar

.Visible = True

With .Controls

With .Add(Type:=msoControlPopup)

.Caption = "Файл"

With .Controls

With .Add(Type:=msoControlButton)

.Caption = "Создать"

.OnAction = "NewDoc"

End With

With .Add(Type:=msoControlButton)

.Caption = "Сохранить"

.OnAction = "SaveDoc"

End With

With .Add(Type:=msoControlButton)

.Caption = "Выход"

.OnAction = "ExitApp"

End With

End With

End With

 





©2015-2017 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.

Обратная связь

ТОП 5 активных страниц!