皆さんは、VBAでオプションボタンを使ったことがありますか?
複数の選択肢の中から、1つ選択するような画面を作るときにオプションボタンはよく使います。
そこで今回は、
・オプションボタンとは?
・オプションボタンの使い方
といった基礎的なことから、
・オプションボタンの配置・設定方法
・オプションボタンの値をVBAで使う方法
・合わせて覚えておくと便利なコントロールの使い方
といった応用的な方法まで、徹底的に解説します!
オプションボタンとは
はじめに、オプションボタンについて簡単に解説します。
オプションボタンとは、次のように複数の選択肢から1つ選択するためのコントロールです。
ちょっとしたアンケートだけでなく、複雑なシステム開発でもオプションボタンを使うケースは多いので、覚えておくと便利です。
オプションボタンの使い方
次に、オプションボタンの使い方について解説します。
オプションボタンの配置・設定方法
まず、オプションボタンの配置・設定方法について解説します。
オプションボタンは、フレームの中に置くことで同じグループとして認識させることができるため、
フレーム作成
↓
オプションボタンをフレームに配置
の流れで作っていきます。
具体的な手順は、次のとおりです。
1. ツールボックスからフレームを選択
2.ユーザーフォームにドラッグしてフォームを配置
3. ツールボックスからオプションボタンを選択
4. ドラッグしてフォームの中にオプションボタンを配置
5. プロパティを変更
※プロパティウィンドウが出ていない場合は、「表示タブ→プロパティウィンドウ」を選択するとでてきます
ただ、ここまでプロパティの設定値が多いと覚えるのが大変そうですよね。
以下最低限覚えておくと幸せになれるプロパティを紹介します。
プロパティ1:オブジェクト名
オブジェクト名はオプションボタンの値をVBAで操作するときに使うため、わかりやすい名前に変更しておくのがおすすめです。
opb〇〇1、opb〇〇2、opb〇〇3のように先頭3文字でオプションボタンとわかるようにしておくと、VBAを書くときに書きやすいです。
プロパティ2:Caption
Captionでは、オプションボタンに表示する文字列を変更することができます。
オプションボタンを追加したら最初にCaptionを変更するのがおすすめです!
プロパティ3:Font
Fontでは、フォントの見た目を変えることができます。
フォントサイズ・フォントタイプ・フォントカラーなどフォントに関しての設定を変えたい場合に便利です。
Font項目の右側にある「…」ボタンを押すと、設定画面が出てきます。
オプションボタンの値をVBAで使う方法
オプションボタンの選択状態をVBAから取得、変更する方法は次の通りです。
取得方法:
オブジェクト名.Value
変更方法:
オブジェクト名.Value = 値
選択している場合はTrue、していない場合はFalseが返ってきます。
ただ、VBAで処理を書くときは「選択したかどうか」ではなく、選択した「オプションボタンの値」を使いたいですよね。
そのため、次の流れで選択したオプションボタンの値を調べるのがおすすめです!
1. 「オブジェクト名.Value」で選択しているオプションボタンを調べる
2. 「オブジェクト名.Caption」で選択したオプションボタンの値を取得する
具体的なサンプルを用意しました。
サンプル:
Sub Test() '画面で選択したオプションボタンの情報をセット Dim OptionButton1_result As Boolean Dim OptionButton2_result As Boolean OptionButton1_result = OptionButton1.Value OptionButton2_result = OptionButton2.Value '選択したオプションボタンの値を変数にセット Dim selectOpbValue As String If OptionButton1_result Then selectOpbValue = OptionButton1.Caption ElseIf OptionButton2_result Then selectOpbValue = OptionButton2.Caption End If End Sub
オブジェクト名が「OptionButton1」「OptionButton2」の2つのオプションボタンの選択状態を「OptionButton1_result」「OptionButton2_result」にそれぞれセットした後、IF文で選択している状態を判定して、「selectOpbValue」に選択したオプションボタンの値をセットする方法です。
この方法を使えば、簡単に選択したオプションボタンの値を取得することができます。
サンプルコード
次に、サンプルコードをもとに、具体的な使い方を解説します。
画面に性別の「男性」「女性」を選択するオプションボタンを用意し、「選択した性別を表示」ボタンクリックで選択した性別がメッセージに表示されるサンプルを用意しました。
※画面のオブジェクト名は、それぞれ以下のようになっています
・男性:opbMan
・女性:opbWoman
・ボタン:btnDispGenderName
サンプルコード:
Private Sub btnDispGenderName_Click() '選択したオプションの情報を変数にセット Dim opbMan_chk As Boolean Dim opbWoman_chk As Boolean opbMan_chk = opbMan opbWoman_chk = opbWoman '選択したオプションの値を取得 Dim strGender As String If opbMan_chk Then strGender = opbMan.Caption ElseIf opbWoman_chk Then strGender = opbWoman.Caption End If 'メッセージで性別を表示 MsgBox "選択した性別は【" & strGender & "】です。" End Sub
実行結果:
このように、簡単にオプションボタンで選択した値を使うことができます。
複数の選択肢から選んだ値を使いたい場合は、とても便利ですね。
合わせて覚えておくと便利なコントロールの使い方
ここまでオプションボタンの使い方を解説してきましたが、ユーザーフォームには他にも便利なコントロールがたくさんあります。
おすすめのコントロールについて以下で詳しく解説しているので、気になる方は見てみてくださいね!
まとめ
今回は、オプションボタンの概要・使い方について解説しました。
ちょっとしたアンケートから、システム開発までオプションボタンはよく使います。
使い方も簡単なので、ぜひ使ってみてくださいね!