ユーザーフォームに配置したオプションボタンって住所録の性別選択に使っていませんか?
顧客登録などする時にわざわざ「男」とか「女」って手入力しないで、クリックするだけで選択できるのでとても便利で正確なので利用していますよね。
そして、コマンドボタンを押せば指定したセルに入力データが転記されるようにして使っていると思いますが、その逆で、セルの値が「男」だったらオプションボタンに自動的に選択されている状態(True)にできれば、データ修正を行う時に便利になりますよね。
この方法が分からなかった時は、毎回性別選択をクリックしていたので、忘れると性別が空欄になっちゃうミスが絶えませんでした。
オプションボタンの状態をセルから自動取得
オプションボタンの状態を取得させるVBAコードがよくわからなくて、当初は諦めていましたが、住所登録や修正をするたびに性別選択を忘れてしまって空欄になってしまったので、取り組むことにしましたが、シンプルに考えるとそれほど難しいVBAコードでなくてもできるんですよ。
まずは、オプションボタン1が「男」、オプションボタン2が「女」で設定していますので、コマンドボタンを押すと指定されたセルへ転記します。
今度は、記載されたセルの値(A1)が「男」だった、オプションボタン1を選択状態「True」で、選択されていなければ未選択状態「False」にします。
同じようにオプションボタン2は「女」だったらという具合に男と同じようにします。
そうすると、以下のようにVBAコードを書くだけでこの部分は完成です。
If Range(“A1”).Value = “男” Then
UserForm1.OptionButton1.Value = True
Else
UserForm1.OptionButton1.Value = False
End If
If Range(“A1”).Value = “女” Then
UserForm1.OptionButton2.Value = True
Else
UserForm1.OptionButton2.Value = False
End If
- もしセルA1の値が男だったら
- ユーザーフォーム1のオプションボタン1を選択状態にする
- そうでなかったら
- ユーザーフォーム1のオプションボタン1を未選択状態にする
- Ifステートメント終了
- もしセルA1の値が女だったら
- ユーザーフォーム1のオプションボタン2を選択状態にする
- そうでなかったら
- ユーザーフォーム1のオプションボタン2を未選択状態にする
- Ifステートメント終了
仮に2つじゃなくて3つ以上あれば、「1~5」行目を繰り返してVBAコードを書くだけなので、難しくはないと思います。
たったこれだけを付け加えてあげれば、オプションボタンがセルの値に合わせて自動的に状態を取得表示できるようになりますよ