Перейти к содержимому

VBA Excel. Элемент управления OptionButton (переключатель)

Элемент управления пользовательской формы OptionButton для выбора одной опции из группы и передачи результата в VBA Excel. Свойства переключателя, примеры.

  1. Элемент управления OptionButton
  2. Свойства элемента Переключатель
  3. Примеры кода VBA с OptionButton

Элемент управления OptionButton

UserForm.OptionButton – это элемент управления пользовательской формы, который используется в группе одноименных элементов и предназначен для передачи в код VBA информации о его выборе или невыборе пользователем: False – переключатель не выбран, True – переключатель выбран.

Элемент управления OptionButton

В VBA Excel элемент управления OptionButton состоит из белого кружка с черной точкой (переключатель выбран) или без нее (переключатель не выбран) и надписи. Надпись расположена справа и реагирует на нажатие мышью так же, как и белый кружок.

В отличие от элемента управления CheckBox, только один OptionButton из группы переключателей может иметь значение True. Для разделения разных групп переключателей друг от друга используются элементы управления Frame (рамки). Все переключатели вне рамок являются одной группой.

Элемент управления OptionButton в группе одноименных элементов

Так же, как и элемент управления CheckBox, OptionButton принимает третье состояние при присвоении ему в коде VBA Excel значения Null. Переключатель отображается с серым кружком и серой точкой.

Элементs управления OptionButton со значением 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:

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 и добавьте в модуль формы представленный выше код. Запуск этого кода отобразит следующую форму:

Элементы управления OptionButton, размещенные на форме в виде пьедестала почета

Пример 2
Управление доступностью двух групп переключателей, заключенных в рамки, с помощью двух управляющих элементов OptionButton, расположенных непосредственно на пользовательской форме.

Для этого создадим следующий проект формы в редакторе VBA Excel («Рыбы» и «Птицы» большими буквами – это значения свойств Caption рамок Frame1 и Frame2):

В модуль формы вставляем следующий код:

'Присвоение исходных значений
'свойствам элементов управления
'перед отображением формы
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 с надписями «Рыбы» и «Птицы» будет активировать группу переключателей в одноименных рамках.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].