Так что же происходит при событии элемента управления SpinButton?
Давайте, рассмотрим подробнее события, связанные с этим элементом управления. SpinButton — это элемент интерфейса, который позволяет пользователю увеличивать или уменьшать значение, щелкая на кнопки вверх и вниз (информация о SpinButton также в статье № 142).
Итак, создана форма и при её вызове происходят события, которые отражаются на рабочем листе.
Если щёлкнуть на саму форму (где нет кнопок), то произойдут ещё события, которые добавятся на лист.
Поэкспериментируйте. С помощью кнопки SpinButton просмотрите вызываемые события. Не забудьте пощёлкать на клавише Tab,клавишах стрелок и клавиатуры.
📌 Скачать файл пример, можно в конце статьи.
Код находящийся в модуле формы достаточно большой и наверно на скриншоте будет некачественно. Но в файле примере достаточно информативно прокомментирован макрос. Комментарии автоматически вставляются в столбец «В».
На скриншоте отображена таблица событий элемента управления SpinButton
Управление SpinButton
Пользователь может управлять SpinButton с помощью мыши или, если элемент активен, с помощью клавиш управления курсором.
События мыши
Когда пользователь щелкает мышью на верхней кнопке SpinButton, происходят следующие события:
- Enter (генерируется, если элемент управления неактивен)
- Change
- SpinUp
События клавиатуры
Пользователь может нажать клавишу <Tab>, чтобы сделать активным элемент SpinButton. После этого можно использовать клавиши управления курсором для изменения значения элемента. События генерируются в следующем порядке:
- Enter
- KeyDown
- Change
- SpinUp или SpinDown
- KeyUp
События, генерируемые кодом
SpinButtonможет изменяться с помощью кода VBA, что также вызывает соответствующие события. Например, следующий код устанавливает значение элемента SpinButton равным 0, что приводит к событию Change, если исходное значение было не равно нулю:
SpinButton1.Value = 0
Кстати вы можете предположить, что есть возможность отключить генерацию событий, установив свойство EnableEvents объекта Application в значение False. Однако это свойство поддерживается только для объектов, являющихся "истинными" в Excel, таких как: Workbook, Worksheet и Chart.
На вызов формы я назначил кнопку: