【ExcelVBA入門】ユーザフォームでオプションボタンを使う方法とは?

皆さんは、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

実行結果:

このように、簡単にオプションボタンで選択した値を使うことができます。

複数の選択肢から選んだ値を使いたい場合は、とても便利ですね。

合わせて覚えておくと便利なコントロールの使い方

ここまでオプションボタンの使い方を解説してきましたが、ユーザーフォームには他にも便利なコントロールがたくさんあります。

おすすめのコントロールについて以下で詳しく解説しているので、気になる方は見てみてくださいね!


【ExcelVBA入門】ユーザフォームでチェックボックスを使う方法とは
更新日 : 2019年9月1日

【VBA入門】コンボボックスの使い方(リストの初期化、値の取得)
更新日 : 2019年4月22日

まとめ

今回は、オプションボタンの概要・使い方について解説しました。

ちょっとしたアンケートから、システム開発までオプションボタンはよく使います。

使い方も簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
現在はフリーランスエンジニア兼テックライターとして活動中。