Шаг 72.
VBA в MSExcel. Элементы управления и пользовательская форма. Элемент ОptionButton (Переключатель)

    На этом шаге мы рассмотрим назначение, основные свойства и пример использования этого элемента управления.

    Элемент управления ОptionButton (Переключатель) создается с помощью кнопки Переключатель (OptionButton) (рисунок 1).


Рис.1. Переключатель на форме

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

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

Таблица 1. Основные свойства OptionButton
Свойство Назначение
Value Возвращает True, если переключатель выбран и False в противном случае
Enabled Допустимые значения: True (пользователь может выбрать переключатель) и False (в противном случае)
Visible Допустимые значения: True (переключатель отображается во время выполнения программы) и False (в противном случае)
Capture Надпись, отображаемая рядом с переключателем

    Рассмотрим способ использования переключателей на примере классической игры "Орел и Решка". Выбирая один из двух переключателей, игрок загадывает один из вариантов: орел (1 для компьютера) или решка (0 для компьютера). Не зная о выборе игрока, компьютер синтезирует с равной вероятностью либо 0, либо 1, что моделирует бросание монеты. Если игрок угадал правильную сторону монеты, подброшенную компьютером, то он выигрывает. В противном случае выигрывает компьютер. Компьютер информирует игрока о результате игры. На рисунке 2 приведено диалоговое окно, отображаемое на экране в случае проигрыша игрока.


Рис.2. Диалоговое окно, отображаемое на экране при проигрыше игрока

    Для создания приложения, моделирующего игру "Орел и Решка", с помощью пользовательской формы UserForm1 создадим диалоговое окно, показанное на рисунке 3, а в модуле UserForm1 введем следующую процедуру, синтезирующую отклик на нажатие кнопки Бросание монеты.


Рис.3. Диалоговое окно игры Орел-Решка

Private Sub CommandButton1_Click()
 ' Генерация с равной вероятностью либо 0 (решка), либо 1 (орел),
 ' т.е. моделирование бросания монеты
 Randomize
 Монета = Int(2 * Rnd)
 ' Сравнение результата бросания монеты компьютером
 ' с ситуацией, если игрок загадал "Орел"
 If OptionButton1.Value = True Then
  If Монета = 0 Then MsgBox "He везет. Займись-ка лучше изучением VBA"
  If Монета = 1 Then MsgBox "Везунчик. Поздравляю, ты выиграл."
 End If
 ' Сравнение результата бросания монеты компьютером
 ' с ситуацией, если игрок загадал "Решка"
 If OptionButton2.Value = True Then
  If Монета = 1 Then MsgBox "He везет. Займись-ка лучше изучением VBA"
  If Монета = 0 Then MsgBox "Везунчик. Поздравляю, ты выиграл"
 End If
End Sub
Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим элемент управления Frame.




Предыдущий шаг Содержание Следующий шаг