Книга: VBA для чайников
Главные события
Главные события
Когда выполняется процедура типа Sub, не отображающая форм, ваш программный код полностью контролирует, что и когда делает программа. Но если на экране отображается форма, программа переходит в каком-то смысле в пассивное состояние, ожидая инструкций от пользователя.
После каждого нажатия клавиши, перемещения мыши или щелчка на кнопке генерируется программное событие. Ваша программа регистрирует каждое такое событие и проверяет, не содержит ли программный код формы процедуру, связанную с этим событием. Если подходящей процедуры нет, событие пройдет для программы бесследно. Но если форма имеет процедуру, соответствующую событию, то программа сразу же оживет и честно выполнит эту процедуру.
Процедура обработки события может делать все, что и любая другая процедура: вычислять значения переменных, манипулировать свойствами и методами объектов, загружать и отображать другие формы. После завершения выполнения процедуры обработки события контроль возвращается к форме. Программа перейдет в состояние ожидания следующего события.
Формы VBA и элементы управления в них могут распознавать самые различные события. (На жаргоне VBA, когда говорится, что объект "имеет" события, подразумевается, что объект может регистрировать и распознавать эти события.) У форм и элементов управления есть одинаковые события, но набор событий каждого объекта индивидуален. Часто встречающиеся события приведены в табл. 10.1.
Таблица 10.1. Избранные события форм и элементов управления
Событие |
Объекты, которые распознают событие |
Когда происходит событие |
Activate |
Формы |
Каждый раз, когда форма активизируется (получает фокус ввода) |
AddControl |
Формы, фреймы и формы с множеством страниц |
При добавлении в объект элемента управления во время выполнения формы |
AfterUpdate |
Все "действующие" элементы управления, кроме кнопок |
После установки нового значения для элемента управления, в момент перехода от данного элемента управления к другому |
Change |
Все "действующие" элементы управления, кроме кнопок |
При изменении значения свойства Value элемента управления |
Click |
Формы и все типы элементов управления |
После щелчка кнопкой мыши на объекте |
DblClick |
Формы и все типы элементов управления |
После двойного щелчка кнопкой мыши на объекте |
DropButtonClick |
Текстовые поля и поля со списком |
При появлении раскрывающегося списка (после щелчка на кнопке раскрытия или нажатия клавиши <F4>) |
Enter |
Все типы элементов управления |
Непосредственно перед тем, как элемент управления получит фокус ввода от другого элемента управления в той же форме |
Error |
Формы и все типы элементов управления |
Когда возникает ошибка, но информация о ней не может возвратиться программе |
Exit |
Все типы элементов управления |
Непосредственно перед тем, как фокус ввода перейдет от данного элемента управления к другому в той же форме |
KeyUp, KeyDown, Keypress |
Формы и все типы элементов управления |
При нажатии или отпускании кнопки |
Layout |
Формы, фреймы и формы с множеством страниц |
При изменении размеров объекта |
RemoveControl |
Формы, фреймы и формы с множеством страниц |
При удалении элемента управления из объекта во время выполнения формы |
Scroll |
Формы, фреймы и формы с множеством страниц, а также текстовые поля, списки и поля со СПИСКОМ |
При изменении положения бегунка полосы прокрутки |
Zoom |
Формы, фреймы и формы с множеством страниц |
При изменении масштаба объекта (значения свойства Zoom) |
- Делайте немногочисленные главные мысли документа понятными с самого начала
- Простейшие события
- Создание рабочей области для собраний на основе календарного события
- События
- Как работают сценарии. События
- 13.2.7. Ожидание события
- Генерирование события оплаты
- Когда не нужно создавать процедур обработки события Click
- Главные инструменты инфопредпринимателя
- Главные имена: словарик