マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図しないエラーに遭遇したことありませんか?
このような押し忘れを防ぐ為には、選択漏れがあった場合にはメッセージを表示させて次に進めないようにすれば解決できますので、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対処法
マクロを組み込んだエクセルを他のスタッフと共有して使っている時に、誤ってユーザーフォームに配置した「オプションボタン」を選択しないで次に進まれてしまい、意図…
紅葉スポット
-
日光東照宮へバスで日光駅から世界遺産の紅葉へ滞在時間5時間
【紅葉見頃】10月下旬~11月上旬 2017年に約半世紀ぶりの大修理を終え、1999年に世界遺産に登録されている、日光東照宮・日光山輪王寺・日光二荒山神社等の建造物群と… -
国営ひたち海浜公園みはらしの丘へあたり一面真っ赤なコキアの絶景へ
茨城県で10月中旬頃にピークを迎える人気ダントツ1位の観光スポット「ひたち海浜公園・みはらしの丘」の、真っ赤に染まった約32,000本コキアを見に世界中から訪日外国人… -
西蓮寺黄金大銀杏へ茨城県内最大級の太さ8m高さ27mの超巨木
紅葉と言えば真っ赤に染まるもみじを思い浮かべますが、いちょうの葉が黄色に染まる姿も醍醐味ですが、茨城県行方市の西連寺には樹齢1000年を超える巨大ないちょうの木… -
笠間市の紅葉名所・北山公園へ友部駅からバス利用で滞在時間40分
茨城県の観光情報が掲載されているサイトで見つけた「北山公園」へのアクセスが、JR水戸線の宍戸駅から徒歩20分と書いてあったので、訪れてみたら広い北山公園の端っこ… -
フリーきっぷで行く12月が見頃の関東近郊の紅葉スポット
渋滞避けて電車とバスでお得なフリーパスや1日乗車券を使って、のんびり紅葉を見に行きませんか? 温暖化の影響で12月上旬でも関東南部では紅葉を見られる場所がまだま… -
日本庭園「松雲山荘」へ柏崎駅から徒歩圏内の大正時代からの紅葉名所
紅葉見頃 10月下旬~11月下旬 約3,000本つつじやもみじなどで大正時代に作られた日本庭園で、柏崎ガス創設者の飯塚謙三氏から柏崎市に移譲され無料で庭園内を散策でき…