Элемент управления пользовательской формы ToggleButton, который при каждом нажатии меняет свое состояние. Свойства выключателя в VBA Excel. Пример кода.
Элемент управления ToggleButton
Синонимы ToggleButton – тумблер, выключатель, кнопка-переключатель, счетная кнопка. Мы будем использовать в тексте ToggleButton и выключатель.
Элемент управления ToggleButton в VBA Excel внешне представляет из себя кнопку, которая при нажатии меняет свое состояние и сохраняет его до следующего клика.
Кроме состояний «нажато» или «отжато», существует и третье состояние выключателя: бледно-серая надпись на отжатой кнопке. Получить такое состояние можно путем присвоения свойству ToggleButton.Value значения Null.
ToggleButton может использоваться на пользовательской форме VBA Excel для выбора или отмены каких-либо параметров, условий, объектов. Его применение схоже с использованием элемента управления CheckBox.
Свойства элемента ToggleButton
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера выключателя. True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height. |
Caption | Надпись на выключателе (заголовок). |
ControlSource | Ссылка на источник данных для свойства Value. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на ToggleButton. |
Enabled | Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет надписи становится бледно-серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста надписи или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста надписи на элементе ToggleButton. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
TextAlign* | Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
TripleState | Определяет, может ли пользователь делать выбор между двумя состояниями ToggleButton или между тремя, включая бледно-серую надпись на отжатом выключателе. True – доступны три состояния, False – доступны два состояния. |
Value | Значение ToggleButton: True – выключатель нажат, False – выключатель отжат, Null – бледно-серая надпись на отжатом выключателе. |
Visible | Видимость элемента управления. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста надписи на новую строку при достижении границы ее поля. True – перенос включен, False – перенос выключен. |
* При загруженной в поле надписи картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.
Свойство по умолчанию для элемента ToggleButton – Value, основное событие – Click.
В таблице перечислены только основные, часто используемые свойства выключателя. Все доступные свойства отображены в окне Properties элемента управления ToggleButton.
Пример использования выключателей
На пользовательской форме VBA Excel размещаем 5 элементов управления ToggleButton и кнопку CommandButton1. При загрузке формы присваиваем свойствам Caption выключателей разные надписи, некоторые из которых обозначают животных:
1 2 3 4 5 6 7 8 |
Private Sub UserForm_Initialize() Me.Caption = "Выбираем животных" ToggleButton1.Caption = "Береза" ToggleButton2.Caption = "Лиса" ToggleButton3.Caption = "Огурец" ToggleButton4.Caption = "Корова" ToggleButton5.Caption = "Лапоть" End Sub |
Нажимаем на выключатели с названиями животных:
Проверяем правильность выбора, нажав на кнопку «OK»:
1 2 3 4 5 6 7 8 9 10 11 |
Private Sub CommandButton1_Click() If Not ToggleButton1.Value _ And ToggleButton2.Value _ And Not ToggleButton3.Value _ And ToggleButton4.Value _ And Not ToggleButton5.Value Then MsgBox "Правильно!" Else MsgBox "Не правильно!" End If End Sub |
Обе процедуры размещены в модуле пользовательской формы.