マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図しないエラーに遭遇したことありませんか?
このような押し忘れを防ぐ為には、選択漏れがあった場合にはメッセージを表示させて次に進めないようにすれば解決できますので、VBAコードをご紹介します。
IfステートメントとMsgBoxだけで解決
オプションボタンは2つ以上配置して、その中から1つを必ず選択する為のコントロールパーツです。
よく見かけるのは、性別などを選択する時に下記のように選べるようになっています。
![オプションボタン](https://tripbowl.net/wp-content/uploads/2018/07/7bcfab4d157718a3b3a3d89cea18576a.jpg)
オプションボタンの特徴は、上の図を参考にすると「男」を選択すると(True)もう一方の「女」は自動的に未選択状態(False)に設定されます。
これにより、グループ内にたくさんのオプションボタンがあっても1つしか選択できないようになっています。
オプションボタンの基本的な使い方については、内容が重複するので下記をご覧くださいませ。
![](https://tripbowl.net/wp-content/uploads/2018/07/1cafae9af84c8ce08a4631212a0a8a62-300x200.jpg)
オプションボタンのVBAコード
![オプションボタン複数](https://tripbowl.net/wp-content/uploads/2023/05/65c24f89b93a86f131c26d1997808047.jpg)
例えば上記のように支払方法を選択させるオプションボタンが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行があれば解決できるとても簡単な方法でした。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
このように選択漏れによるエラーは、よくあることなので必ず未選択時の対処をするVBAコードを付け加えることが、とても重要ですね。
関連記事
-
オプションボタン(optionbutton)の名前変更と使い方
オリジナル入力フォームが作ることができる「ユーザーフォーム」のパーツのひとつで、「男」「女」などの性別のように2つ以上の選択肢の中から1つだけ選ぶことができる… -
セル値を自動取得してオプションボタンの状態を表示させるVBA方法
ユーザーフォームに配置したオプションボタンって住所録の性別選択などで使用していると思いますが、セルの値が「男」「女」を自動的に見つけてオプションボタンの状態… -
全てのオプションボタンが未選択の時にエラーを防ぐVBA対処法
マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図…
紅葉スポット
-
水上駅から利根川沿いに整備された遊歩道や諏訪峡のもみじ公園へ
水上駅の南側にバンジージャンプが体験できる有名な諏訪峡大橋には、もみじに囲まれたもみじ公園があり、ここから利根川沿いの紅葉を楽しむことができます。 そして整備… -
那須岳・那須ロープウェイへ那須塩原駅や黒磯駅からバスで行く
天皇皇后両陛下や皇族の方々のご静養の場所があるほど、自然豊かな那須高原のシンボルでもある那須岳は、夏は過ごしやすい避暑地として、秋には色とりどりの木々の紅葉… -
鬼怒川温泉駅からバスで川俣ダムと瀬戸合峡渡らっしゃい吊橋紅葉へ
【紅葉見頃】10月中旬~11月上旬 紅葉を見に日光を訪れて中禅寺湖周辺を目指して、大渋滞や混雑に巻き込まれて大変な思いをした方多いと思いますが、関東エリアの紅葉… -
フリーきっぷで行く日光や栃木県内の紅葉名所や穴場スポット22選
関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺から渋滞して全く動かない状態に… -
四方木ふれあい館から四方木不動滝の紅葉絶景へ安房天津駅からバス
県道から山道に入り林の中にある秘境で、水量によって左右に分かれることから夫婦滝とも呼ばれています。 山深い大自然の中を散策していく四方木不動滝と紅葉がひそかな… -
紅葉の寸又峡コバルトブルーの夢の吊橋へ滞在時間2時間
サンドウィッチマンとゲストがバスで旅するバスサンドの放送を見て、ビックリするほど綺麗なコバルトブルーの湖にかかる吊り橋がとても気になったので、夏に青春18きっ…