【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入門】ユーザフォームでチェックボックスを使う方法とは
更新日:2024年3月1日

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

まとめ

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

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

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

この記事を書いた人

北海道出身の30歳で、フリーランスエンジニア兼テックライターとして活動中。新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。

Webアプリ、業務アプリ開発において、要件定義 ~ 運用保守まで様々な経験あり。また3歳の娘がいる1児のパパで、日々娘との時間を確保するために仕事を頑張っています!
侍エンジニアでは、【誰でもわかるレベルのわかりやすさ】を意識して、記事を執筆中。

目次