オプションボタン(ラジオボタン)のプロパティ

このページではオプションボタン(ラジオボタン)の Value プロパティについて解説します。

オプションボタンは2つ以上設置し、その中から1つを選択するためのコントロールです。このコントロールの特徴は、あるオプションボタンを操作すると他のオプションボタンの Value プロパティが変わることにあります。もう少し具体的に言うと、複数あるオプションボタンの中で Value プロパティに True を設定できるのは1つだけで、あるオプションボタンに True を設定すると他のオプションボタンは自動的に False となります。

オプションボタンは前述のチェックボックスと同様に選択状態でも未選択でもない、”NULL状態”を表現することが可能です。

スポンサーリンク

説明済みプロパティ

コントロールオブジェクトが異なるだけで前のページで説明した内容と同じプロパティについては説明を割愛させていただきます。以下のリンク先をご覧になってください。

※説明の中に出てくるコントロールオブジェクトは適宜読み換えてください。

選択状態の取得および設定(Value プロパティ)

選択状態の取得および設定を行うには Value プロパティを使用します。True を設定することで選択状態、False を設定することで未選択状態にすることができます。冒頭にも説明しましたが、複数あるオプションボタンのうち True を設定できるのは1つだけで、それ以外は自動的に False になります。

NULL状態にするにはプロパティウィンドウから設定する場合とコードから設定する場合で設定方法が異なります。プロパティウィンドウから設定する場合は Value プロパティをクリアします。コードから設定するには Value プロパティに NULL 値を設定します。

  • 選択状態
    選択状態
  • 未選択状態
    未選択状態
  • NULL状態
    NULL状態

プロパティウィンドウでの設定

True/False を設定します。値をクリアするとNULL状態になります。

Value プロパティの値を設定
Value プロパティの値を設定

コードの記述例1

'選択状態に設定
Option1Button1.Value = True

'未選択状態に設定
Option1Button1.Value = False

'NULL状態に設定
Option1Button1.Value = NULL

コードの記述例2

以下のコードは、コマンドボタンのクリックイベントで、選択されているオプションボタンの Caption プロパティを表示する例です。オプションボタンが少ない場合はIf~ElseIfで判別してもよいですが、ここではあえて配列とForループを使用してみました。

なお、オプションボタンは以下の図のように3つ(OptionButton1 ~ 3)設置されており、すべて未選択状態(False)に設定されているものとします。

何も選択されていない状態
何も選択されていない状態

もし、NULL状態(NULL 値)を判別したい場合は IsNull関数 を使用してください。
(使用例 ⇒ チェックボックスのNULL状態(NULL値)を判別する

Private Sub CommandButton1_Click()
    Dim OptionAry   As Variant
    Dim flg         As Boolean
    Dim i           As Integer

    '複数のオプションボタンを配列として格納
    OptionAry = Array(OptionButton1, OptionButton2, OptionButton3)

    '選択フラグの初期化
    flg = False

    'オプションボタンのチェック
    For i = 0 To UBound(OptionAry)
        If OptionAry(i).Value Then
            'フラグに True を設定して、チェック処理を抜ける。
            flg = True
            Exit For
        End If
    Next

    'チェック結果の表示
    If flg Then
        MsgBox "『" & OptionAry(i).Caption & "』が選択されました。"
    Else
        MsgBox "『飲酒』項目が選択されていません。", vbExclamation
    End If
End Sub

 For…Next MsgBox関数 Array関数 LBound、UBound関数

表示結果

  • 何も選択されていない場合
    何も選択されていない状態エラーを表示
  • 1つ選択されている状態
    1つ選択されている状態選択内容を表示

オプションボタンの初期設定

オプションボタンを設置したら、その初期値にも気を配りたいものです。通常は1つ選択された状態にしておきます。

1つ選択した状態
1つ選択した状態
1つ選択した状態
1つ選択した状態

すべて未選択、または、NULL値の状態は、ユーザーに選択操作を強制したい場面などで使用できます。
(選択されていない場合にはエラーとする)

すべて未選択の状態
すべて未選択の状態
すべてNULL値の状態け
すべてNULL値の状態け

フレームによるオプションボタンのグループ分け

オプションボタンはフレームコントロールを使用することでグループ分けが可能です。この同一グループ内で1つのオプションボタンを選択することができるようになります。このような場合はオプションボタンのチェックもグループ単位に実施する必要があります。

以下は、飲酒と喫煙についてそれぞれグループ分けしてオプションボタンを設置した例です。

フレームによるオプションボタンのグループ分け

 各コントロールの概要

タイトルとURLをコピーしました