アクセス上位ページ
 
最近の更新内容
(2)-g.チェックボックス ⇐ [PREV]
[NEXT] ⇒ (2)-i.トグルボタン

Excel VBA ≫ 5.ユーザーフォーム - 各種コントロール解説(2)-h.オプションボタン

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

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

オプションボタンは2つ以上設置し、その中から1つを選択するためのコントロールです。 このコントロールの特徴は、あるオプションボタンを操作すると他のオプションボタンの Value プロパティが変わることにあります。 もう少し具体的に言うと、複数あるオプションボタンの中で Value プロパティに True を設定できるのは1つだけで、 あるオプションボタンに True を設定すると他のオプションボタンは自動的に False となります。
オプションボタンは前述のチェックボックスと同様に選択状態でも未選択でもない、"NULL状態"を表現することが可能です。



Value プロパティ以外の 前のページで説明した内容と同じプロパティについては説明を割愛させていただきます。 かわりにリンクをまとめてありますのでリンク先をご覧になってください。



選択状態の取得および設定

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

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

    <プロパティウィンドウでの初期値設定例>
    True/False を設定します。値をクリアするとNULL状態になります。 Value プロパティの値を設定 <コードの記述例(プロパティの設定)>
    '選択状態に設定
    Option1Button1.Value = True
    
    '未選択状態に設定
    Option1Button1.Value = False
    
    'NULL状態に設定
    Option1Button1.Value = NULL
    

    <コードの記述例(プロパティの取得)>
    以下のコードは、コマンドボタンのクリックイベントで、選択されているオプションボタンの Caption プロパティを表示する例です。 オプションボタンが少ない場合はIf〜ElseIfで判別してもよいですが、ここではあえて配列とFor分を使用してみました。
    もし、NULL状態(NULL 値)を判別したい場合は IsNull関数 を使用してください。
    (使用例 ⇒ チェックボックスのNULL状態(NULL値)を判別する

    • オプションボタンの設置状態
    • オプションボタンは以下の図のように3つ(OptionButton1 〜 3)設置されており、 すべて未選択状態(False)に設定されているものとします。 何も選択されていない状態
    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
    

    上記サンプルの実行結果
    • 何も選択されていない場合
    • 何も選択されていない状態 エラーを表示
    • 1つ選択されている状態
    • 1つ選択されている状態 選択内容を表示

  • オプションボタンの初期設定
  • オプションボタンを設置したら、その初期値にも気を配りたいものです。 状況に応じて使い分けるとよいでしょう。
    • 1つ選択された状態
    • 1つ選択した状態 1つ選択した状態
    • すべて未選択、または、NULL値の状態
    • ※重要な項目のため、ユーザーに選択操作を強制したい場合など
      (選択されていない場合にはエラーとする) すべて未選択の状態 すべてNULL値の状態け
  • フレームによるオプションボタンのグループ分け
  • オプションボタンはフレームコントロールを使用することでグループ分けが可能です。 この同一グループ内で1つのオプションボタンを選択することができるようになります。 このような場合はオプションボタンのチェックもグループ単位に実施する必要があります。

    • 飲酒と喫煙についてそれぞれオプションボタンを設置した例
    • フレームによるオプションボタンのグループ分け

<サイト内関連リンク> 関連リンクもチェック!!
- コントロール一覧
- 各コントロールに共通のプロパティ
   (Width、Height、BackColor、Enabled、Visible、ControlTipText)
カテゴリ内ページ
Excel VBA 〜 総目次 〜
- 5.ユーザーフォーム
--- (2)-a.コントロール一覧
--- (2)-b.共通プロパティ
--- (2)-c.ラベル
--- (2)-d.テキストボックス
--- (2)-e.コンボボックス
--- (2)-f.リストボックス
--- (2)-g.チェックボックス
--- (2)-h.オプションボタン
--- (2)-i.トグルボタン
--- (2)-j.スクロールバー
--- (2)-k.スピンボタン
--- (2)-l.イメージ



Page
Top