Элемент управления пользовательской формы OptionButton для выбора одной опции из группы и передачи результата в VBA Excel. Свойства переключателя, примеры.
Элемент управления OptionButton
В VBA Excel элемент управления OptionButton состоит из белого кружка с черной точкой (переключатель выбран) или без нее (переключатель не выбран) и надписи. Надпись расположена справа и реагирует на нажатие мышью так же, как и белый кружок.
В отличие от элемента управления CheckBox, только один OptionButton из группы переключателей может иметь значение True. Для разделения разных групп переключателей друг от друга используются элементы управления Frame (рамки). Все переключатели вне рамок являются одной группой.
Так же, как и элемент управления CheckBox, OptionButton принимает третье состояние при присвоении ему в коде VBA Excel значения Null. Переключатель отображается с серым кружком и серой точкой.
Свойства элемента Переключатель
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера переключателя. True – размер автоматически подстраивается под длину набираемой строки. False – размер элемента управления определяется свойствами Width и Height. |
ControlSource | Ссылка на источник данных для свойства Value. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на OptionButton. |
Enabled | Возможность взаимодействия пользователя с элементом управления. True – взаимодействие включено, False – отключено (цвет переключателя становится серым). |
Font | Шрифт, начертание и размер текста надписи. |
Height | Высота элемента управления. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления. |
Picture | Добавление изображения вместо текста надписи или дополнительно к нему. |
PicturePosition | Выравнивание изображения и текста в поле надписи. |
TabIndex | Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0. |
TextAlign* | Выравнивание текста надписи: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления. |
Value | Значение переключателя: True – включен, False – выключен, Null – серый кружок с серой точкой. |
Visible | Видимость элемента OptionButton. True – элемент отображается на пользовательской форме, False – скрыт. |
Width | Ширина элемента управления. |
WordWrap | Перенос текста надписи на новую строку при достижении границы ее поля. True – перенос включен, False – перенос выключен. |
* При загруженной в поле надписи картинке свойство TextAlign не работает, следует использовать свойство PicturePosition.
Свойство по умолчанию для элемента OptionButton – Value, основное событие – Click.
В таблице перечислены только основные, часто используемые свойства переключателя. Все доступные свойства отображены в окне Properties элемента управления OptionButton.
Примеры кода VBA с OptionButton
Пример 1
Отображение элементов управления OptionButton на пользовательской форме с параметрами, заданными в коде VBA Excel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Private Sub UserForm_Initialize() With Me .Width = 160 .Height = 110 .Caption = "Пьедестал почета" End With With OptionButton1 .Caption = "1 место" .Value = True .Width = 60 .Height = 18 .Left = 60 .Top = 18 .Font.Size = 10 End With With OptionButton2 .Caption = "2 место" .Value = False .Width = 60 .Height = 18 .Left = 12 .Top = 36 .Font.Size = 10 End With With OptionButton3 .Caption = "3 место" .Value = False .Width = 60 .Height = 18 .Left = 90 .Top = 48 .Font.Size = 10 End With End Sub |
Разместите на пользовательской форме три переключателя с именами OptionButton1, OptionButton2, OptionButton3 и добавьте в модуль формы представленный выше код. Запуск этого кода отобразит следующую форму:
Пример 2
Управление доступностью двух групп переключателей, заключенных в рамки, с помощью двух управляющих элементов OptionButton, расположенных непосредственно на пользовательской форме.
Для этого создадим следующий проект формы в редакторе VBA Excel («Рыбы» и «Птицы» большими буквами – это значения свойств Caption рамок Frame1 и Frame2):
В модуль формы вставляем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
'Присвоение исходных значений 'свойствам элементов управления 'перед отображением формы Private Sub UserForm_Initialize() OptionButton1.Value = False OptionButton2.Value = False OptionButton3.Enabled = False OptionButton4.Enabled = False OptionButton5.Enabled = False OptionButton6.Enabled = False OptionButton7.Enabled = False OptionButton8.Enabled = False Frame1.Enabled = False Frame2.Enabled = False End Sub 'Смена значений свойств переключателей, 'расположенных в рамке Frame1, 'при смене значения OptionButton1.Value Private Sub OptionButton1_Change() If OptionButton1.Value Then Frame1.Enabled = True With OptionButton3 .Value = False .Enabled = True End With With OptionButton4 .Value = False .Enabled = True End With With OptionButton5 .Value = False .Enabled = True End With Else Frame1.Enabled = False With OptionButton3 .Value = False .Enabled = False End With With OptionButton4 .Value = False .Enabled = False End With With OptionButton5 .Value = False .Enabled = False End With End If End Sub 'Смена значений свойств переключателей, 'расположенных в рамке Frame2, 'при смене значения OptionButton2.Value Private Sub OptionButton2_Change() If OptionButton2.Value Then Frame2.Enabled = True With OptionButton6 .Value = False .Enabled = True End With With OptionButton7 .Value = False .Enabled = True End With With OptionButton8 .Value = False .Enabled = True End With Else Frame2.Enabled = False With OptionButton6 .Value = False .Enabled = False End With With OptionButton7 .Value = False .Enabled = False End With With OptionButton8 .Value = False .Enabled = False End With End If End Sub |
При запуске пользовательской формы или процедуры UserForm_Initialize()
откроется форма с неактивными переключателями в рамках Frame1 и Frame2. Нажатие мышью на элементы управления OptionButton с надписями «Рыбы» и «Птицы» будет активировать группу переключателей в одноименных рамках.
Добрый день!
Так как версий Excel очень много, было бы полезно размещать примеры для скачивания
Обсуждение закрыто.