マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図しないエラーに遭遇したことありませんか?
このような押し忘れを防ぐ為には、選択漏れがあった場合にはメッセージを表示させて次に進めないようにすれば解決できますので、VBAコードをご紹介します。
IfステートメントとMsgBoxだけで解決
オプションボタンは2つ以上配置して、その中から1つを必ず選択する為のコントロールパーツです。
よく見かけるのは、性別などを選択する時に下記のように選べるようになっています。

オプションボタンの特徴は、上の図を参考にすると「男」を選択すると(True)もう一方の「女」は自動的に未選択状態(False)に設定されます。
これにより、グループ内にたくさんのオプションボタンがあっても1つしか選択できないようになっています。
オプションボタンの基本的な使い方については、内容が重複するので下記をご覧くださいませ。

オプションボタンのVBAコード

例えば上記のように支払方法を選択させるオプションボタンが8つ配置されていて、選択を忘れてしまった場合(全てのオプションボタンが選択されていない場合)の対処法として、メッセージを表示させて次に進めないようにする方法をご紹介します。
ここでは、選択されたオプションボタンの支払方法がセルA1に表記させるようにします。
Private Sub CommandButton1_Click()
If OptionButton1.Value = True Then
Range(“A1”).Value = “現金”
ElseIf OptionButton2.Value = True Then
Range(“A1”).Value = “カード”
ElseIf OptionButton3.Value = True Then
Range(“A1”).Value = “PayPay”
ElseIf OptionButton4.Value = True Then
Range(“A1”).Value = “Suica”
ElseIf OptionButton5.Value = True Then
Range(“A1”).Value = “nanaco”
ElseIf OptionButton6.Value = True Then
Range(“A1”).Value = “WAON”
ElseIf OptionButton7.Value = True Then
Range(“A1”).Value = “Edy”
ElseIf OptionButton8.Value = True Then
Range(“A1”).Value = “iD”
Else
MsgBox “支払方法を選択してください”
End If
End Sub
- コマンドボタン1がクリックされたら
- もしオプションボタン1が選択されたら
- セルA1に「現金」と記載する
- そうではなく、もしオプションボタン2が選択されたら
- セルA1に「カード」と記載する
- そうではなく、もしオプションボタン3が選択されたら
- セルA1に「PayPay」と記載する
- そうではなく、もしオプションボタン4が選択されたら
- セルA1に「Suica」と記載する
- そうではなく、もしオプションボタン5が選択されたら
- セルA1に「nanaco」と記載する
- そうではなく、もしオプションボタン6が選択されたら
- セルA1に「WAON」と記載する
- そうではなく、もしオプションボタン7が選択されたら
- セルA1に「Edy」と記載する
- そうではなく、もしオプションボタン8が選択されたら
- セルA1に「iD」と記載する
- そうではなかったら(選択が無かったら)
- メッセージで「支払方法を選択してください」と表示する
- Ifステートメント終了
- マクロ記録終了
と、このようになり「全てのオプションボタンが選択されていない場合のVBA対処法」とは、赤字で記載した2行があれば解決できるとても簡単な方法でした。
波乗りアヒルこのように選択漏れによるエラーは、よくあることなので必ず未選択時の対処をするVBAコードを付け加えることが、とても重要ですね。
関連記事
-
オプションボタン


セル値を自動取得してオプションボタンの状態を表示させるVBA方法
ユーザーフォームに配置したオプションボタンって住所録の性別選択などで使用していると思いますが、セルの値が「男」「女」を自動的に見つけてオプションボタンの状態… -
オプションボタン


オプションボタン(optionbutton)の名前変更と使い方
オリジナル入力フォームが作ることができる「ユーザーフォーム」のパーツのひとつで、「男」「女」などの性別のように2つ以上の選択肢の中から1つだけ選ぶことができる… -
オプションボタン


全てのオプションボタンが未選択の時にエラーを防ぐVBA対処法
マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図…







