Excel VBA オプションボタンで選択された項目を取得する

スポンサーリンク

オプションボタンで選択された項目を取得する方法

ユーザーフォームで、ユーザーに複数項目内から1つの項目を選択してもらうにはOptionButton【オプションボタン】コントロールを使用します。


OptionButton【オブションボタン】コントロールはValue【バリュー】プロパティでチェック状態の取得または、設定ができます。

OptionButton.Value【オプションボタンバリュー】プロパティ

オプションボタンのチェック状態を取得または設定するにはOptionButton【オプションボタン】コントロールオブジェクトのValue【バリュー】プロパティを使用します。

ボタンがチェック(選択)状態は True が取得されボタンのチェックが外れている場合は False が取得されます。

OptionButton.Value【オプションボタンバリュー】プロパティの書式と設定値の説明

【取得】
オブジェクト.Value
【設定】
オブジェクト.Value = 設定値

  • オブジェクト(必須)
    オプションボタンのオブジェクト名を指定します。
  • 設定値(必須)
    True を設定した場合はボタンにチェックが入ります。
    False を設定した場合はボタンのチェックが外れます。
    Null を設定した場合はボタンが無効状態になります。

選択されているボタンを取得してメッセージボックスに表示するコードと解説

Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
   MsgBox "OptionButton1がチェックされています。"
ElseIf OptionButton2.Value = True Then
   MsgBox "OptionButton2がチェックされています。"
ElseIf OptionButton3.Value = True Then
   MsgBox "OptionButton3がチェックされています。"
Else
   MsgBox "どれかを選択してください。"
End If
End Sub
1行目【Private Sub CommandButton1_Click()】
「CommandButton1」ボタンがクリックされたときに発生する
「CommandButton1_Click」イベントプロシージャにコードを記述します。



2行目から3行目【If OptionButton1.Value = True Then
MsgBox “OptionButton1にチェックされています。”】

If【イフ】ステートメント(条件分岐)を使用してOptionButton1【オプションボタン1】がTrueだったとき、つまりボタンにチェックがあったときを定義します。条件が成立した場合3行目の処理が実行されます。不成立だった場合つまり、値がFalseでボタンのチェックがない場合は
3行目の処理は無視されて処理が4行目に移ります。


4行目~5行目【ElseIf OptionButton2.Value = True Then
MsgBox “OptionButton2にチェックされています。”】

ElseIf【エルズイフ】ステートメントに2つ目の条件としてOptionbutton2【オプションボタン2】のボタンチェック状態を定義します。


6行目~7行目【ElseIf OptionButton3.Value = True Then
MsgBox “OptionButton3にチェックされています。”】

ElseIf【エルズイフ】ステートメントに3つ目の条件としてOptionbutton3【オプションボタン3】のボタンチェック状態を定義します。


8行目~9行目【Else
MsgBox “どれかを選択してください。”】

Else【エルズ】ステートメントにすべての条件が成立しなかった場合、つまりすべてのボタンにチェックがない(選択されていない)場合、メッセージを表示します。


実行結果



選択されたボタンの値をA列セルに表示するコードと解説

Private Sub CommandButton1_Click()
With Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
If OptionButton1.Value = True Then
  .Value = OptionButton1.Caption
ElseIf OptionButton2.Value = True Then
   .Value = OptionButton2.Caption
ElseIf OptionButton3.Value = True Then
   .Value = OptionButton3.Caption
Else
   MsgBox "どれかを選択してください。"
End If
End With
End Sub
2行目【With Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)】
Rows.Count【ロウズカウント】プロパティを使用して最終行のセルを参照し、End【エンド】プロパティの引数にXlUpを指定して上方向に値が入力されている最終行番号を参照してOffset【オフセット】プロパティを使用して最後に値が入力されている行の次の行を参照して、With【ウィズ】ステートメントで指定します。


4行目【.Value = OptionButton1.Caption】
ボタンが選択されている(条件が成立した場合)はWith【ウィズ】ステートメントで指定したA列のデータの最終行の次の行のセルにオブションボタンに設定されているCaption【キャプション】(表示されている文字列)を代入します。


実行結果


オプションボタンのプロパティ一覧は「オブションボタンのプロパティ」をご覧ください。

以上で、オプションボタンで選択された項目を取得する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告