Элемент управления пользовательской формы SpinButton, применяемый в VBA Excel для создания счетчика, состоящего из двух кнопок. Свойства, пример кода.
Элемент управления SpinButton
Элемент управления SpinButton предназначен в VBA Excel для ввода пользователем числовых данных, которые ограничены минимальным и максимальным значениями. Увеличение или уменьшение числового значения счетчика при однократном нажатии кнопки происходит с указанным шагом.
Визуально, элемент управления SpinButton состоит из двух кнопок, расположенных вертикально или горизонтально в зависимости от настроек. При нажатии на верхнюю или правую кнопку элемента управления значение увеличивается, при нажатии на нижнюю или левую – уменьшается.
Обычно счетчик используется в паре с элементом управления TextBox или Label. Вспомогательный элемент необходим, чтобы отобразить значение счетчика на пользовательской форме.
Свойства элемента SpinButton
Свойство | Описание |
---|---|
BackColor | Цвет кнопок. |
Delay* | Время между последовательными событиями при удержании кнопки. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на счетчик. |
Enabled | Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет стрелок становится серым). |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Max | Максимальное значение свойства Value. |
Min | Минимальное значение свойства Value. |
Orientation** | Задает горизонтальную или вертикальную ориентацию элемента управления SpinButton. |
SmallChange | Шаг изменения значения свойства Value. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Visible | Видимость элемента SpinButton. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
* По умолчанию свойство Delay равно 50 миллисекундам. Это означает, что первое событие (SpinUp, SpinDown, Change) происходит через 250 миллисекунд после нажатия кнопки, а каждое последующее событие – через каждые 50 миллисекунд (и так до отпускания кнопки).
** По умолчанию включена автоматическая ориентация, которая зависит от соотношения между шириной и высотой элемента управления. Если ширина больше высоты – ориентация горизонтальная, если высота больше ширины – ориентация вертикальная.
В таблице перечислены только основные, часто используемые свойства счетчика. Все доступные свойства отображены в окне Properties элемента управления SpinButton.
Пример кода VBA Excel со счетчиком
Условие
- На пользовательской форме UserForm1 расположены элементы управления SpinButton1 и Label1.
- Необходимо задать для счетчика SpinButton1 интервал значений от 100 до 500 единиц с шагом 50 и отображением набранного значения на элементе Label1.
Решение
Первоначальные настройки при открытии пользовательской формы:
1 2 3 4 5 6 7 8 9 |
Private Sub UserForm_Initialize() Me.Caption = "Пример" With SpinButton1 .Min = 100 .Max = 500 .SmallChange = 50 End With Label1.Caption = "100" End Sub |
Обработка события Change объекта SpinButton1:
1 2 3 |
Private Sub SpinButton1_Change() Label1.Caption = SpinButton1.Value End Sub |
Обе процедуры размещаются в модуле пользовательской формы.