オプションボタンの基本
Excel VBAで「複数の選択肢から 1つだけ選んでもらう」場面では UserFormのオプションボタン(OptionButton) を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- OptionButtonとは?
○ の形をした入力コントロール。複数配置すると「どれか1つだけ選択」できる。 - 用途:
- 性別選択(男性/女性)
- 支払い方法選択(現金/カード/振込)
- 設定画面でのモード選択
- プロパティ:
.Value→ True(選択されている)/False(選択されていない).Caption→ 表示されるラベル文字列
テンプレ1:選択状態を判定してメッセージ表示
UserFormに OptionButton1(男性)、OptionButton2(女性)、CommandButton1 を配置。
Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
MsgBox "男性が選択されました"
ElseIf OptionButton2.Value = True Then
MsgBox "女性が選択されました"
Else
MsgBox "どちらも選択されていません"
End If
End Sub
VB- ポイント:
OptionButton1.Valueが True なら選択されている。- 複数のオプションボタンから1つだけ選べる。
テンプレ2:選択結果をシートに書き戻す
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Result")
If OptionButton1.Value Then
ws.Range("A1").Value = "現金"
ElseIf OptionButton2.Value Then
ws.Range("A1").Value = "カード"
ElseIf OptionButton3.Value Then
ws.Range("A1").Value = "振込"
End If
MsgBox "選択内容をシートに保存しました"
End Sub
VB- ポイント:
- 選択されたオプションをシートに書き戻す。
テンプレ3:フォーム初期化時に選択状態を設定
Private Sub UserForm_Initialize()
OptionButton1.Value = True ' 初期状態で「現金」を選択
OptionButton2.Value = False
OptionButton3.Value = False
End Sub
VB- ポイント:
- フォームを開いたときに初期状態を設定。
テンプレ4:選択肢を動的に変更
Private Sub CommandButton1_Click()
OptionButton1.Caption = "国内配送"
OptionButton2.Caption = "海外配送"
End Sub
VB- ポイント:
.Captionプロパティでラベル文字を変更。- 状況に応じて選択肢を切り替え可能。
テンプレ5:複数グループを作る(Frameで囲む)
- Frameコントロール で囲むと「グループ化」できる。
- グループごとに「1つだけ選択」が可能。
例:性別(男性/女性)と支払い方法(現金/カード/振込)を別グループに。
例題で練習
'例1:性別選択を判定
' → CommandButton1_Click にコードを記述
'例2:支払い方法をシートに書き戻す
' → CommandButton1_Click にコードを記述
'例3:フォーム初期化時に選択状態を設定
' → UserForm_Initialize にコードを記述
'例4:選択肢を動的に変更
' → CommandButton1_Click にコードを記述
'例5:Frameでグループ化して複数選択セットを作る
' → UserFormにFrameを配置
VB初心者向けポイント
- OptionButtonは「1つだけ選択」 → 複数の中から1つを選ぶ用途に最適。
- Valueで判定 → True/Falseで選択状態を確認。
- Captionでラベル変更 → 状況に応じて選択肢を変えられる。
- Frameでグループ化 → 複数の選択セットを作れる。
- UserForm_Initializeで初期化 → 開いたときの選択状態を設定。
👉 この「オプションボタン基本テンプレ」を覚えておけば、Excel VBAで 複数選択肢から1つを選ぶ入力フォーム を簡単に作れるようになります。
