Найти тему
VBA Excel с нуля

VBA Excel № 152 Как выглядят события элемента управления SpinButton?

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Так что же происходит при событии элемента управления SpinButton?

Давайте, рассмотрим подробнее события, связанные с этим элементом управления. SpinButton — это элемент интерфейса, который позволяет пользователю увеличивать или уменьшать значение, щелкая на кнопки вверх и вниз (информация о SpinButton также в статье № 142).

Итак, создана форма и при её вызове происходят события, которые отражаются на рабочем листе.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Если щёлкнуть на саму форму (где нет кнопок), то произойдут ещё события, которые добавятся на лист.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Поэкспериментируйте. С помощью кнопки SpinButton просмотрите вызываемые события. Не забудьте пощёлкать на клавише Tab,клавишах стрелок и клавиатуры.

📌 Скачать файл пример, можно в конце статьи.

Код находящийся в модуле формы достаточно большой и наверно на скриншоте будет некачественно. Но в файле примере достаточно информативно прокомментирован макрос. Комментарии автоматически вставляются в столбец «В».

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука

На скриншоте отображена таблица событий элемента управления SpinButton

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Управление SpinButton

Пользователь может управлять SpinButton с помощью мыши или, если элемент активен, с помощью клавиш управления курсором.

События мыши

Когда пользователь щелкает мышью на верхней кнопке SpinButton, происходят следующие события:

  1. Enter (генерируется, если элемент управления неактивен)
  2. Change
  3. SpinUp

События клавиатуры

Пользователь может нажать клавишу <Tab>, чтобы сделать активным элемент SpinButton. После этого можно использовать клавиши управления курсором для изменения значения элемента. События генерируются в следующем порядке:

  1. Enter
  2. KeyDown
  3. Change
  4. SpinUp или SpinDown
  5. KeyUp

События, генерируемые кодом

SpinButtonможет изменяться с помощью кода VBA, что также вызывает соответствующие события. Например, следующий код устанавливает значение элемента SpinButton равным 0, что приводит к событию Change, если исходное значение было не равно нулю:

SpinButton1.Value = 0

Кстати вы можете предположить, что есть возможность отключить генерацию событий, установив свойство EnableEvents объекта Application в значение False. Однако это свойство поддерживается только для объектов, являющихся "истинными" в Excel, таких как: Workbook, Worksheet и Chart.

На вызов формы я назначил кнопку:

Скриншот с моего ноутбука
Скриншот с моего ноутбука

СКАЧАТЬ ФАЙЛ ПРИМЕР

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц