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

VBA Excel № 153. Совместное использование элементов управления SpinButton и TextBox

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

Как использовать элементы управления SpinButton и TextBox вместе?

Элемент управления SpinButton имеет свойство Value, но сам не отображает его значение. Чтобы пользователь мог менять значение SpinButton напрямую, а не только с помощью щелчков, можно использовать его вместе с элементом TextBox. Это позволяет вводить значение напрямую в поле TextBox, а также изменять его с помощью SpinButton.

Пример использования

На скриншоте показан простой пример: у SpinButton есть свойство Min со значением -100 и свойство Max со значением 100. При щелчке на стрелки SpinButton значение изменяется в пределах от -100 до 100.

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

Реализация кода

Для связи SpinButton и TextBox нужно создать процедуры обработки событий, которые будут синхронизировать их значения.

Инициализация формы

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

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

Этот код задает начальные значения для SpinButton и TextBox при инициализации формы. Свойства Min и Max определяют диапазон значений, надпись Label1 показывает пользователю допустимый диапазон, а TextBox1 отображает начальное значение SpinButton.

Синхронизация SpinButton и TextBox

Когда значение SpinButton изменяется (например, при щелчке на стрелки), нужно обновить TextBox:

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

Этот код устанавливает значение TextBox равным текущему значению SpinButton.

Когда пользователь вводит значение в TextBox, нужно обновить SpinButton:

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

Этот код проверяет, является ли введенное значение числом и находится ли оно в допустимом диапазоне. Если да, значение SpinButton обновляется.

Выделение текста в TextBox

Для удобства пользователя текст в TextBox выделяется при фокусировке:

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

Этот код выделяет весь текст в TextBox, когда пользователь щелкает по нему.

Передача значения в активную ячейку

При щелчке на кнопку OK значение SpinButton передается в активную ячейку:

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

Этот код проверяет, совпадает ли значение SpinButton с текстом в TextBox. Если да, значение записывается в активную ячейку и форма закрывается. Если нет, отображается сообщение об ошибке, и текст в TextBox выделяется для исправления.

И тут приходит понимание, что использование SpinButton вместе с TextBox позволяет пользователю удобно и быстро менять значения. Такая синхронизация через процедуры обработки событий обеспечивает корректную и совместную работу этих элементов управления.

Попробуйте поэкспериментировать. Понажимать, изменять значения, вводить неправильные значения, вводить значения за пределами минимального и максимального и т.п.

Например:

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

вводим не число, а текст

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

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