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

皆さんは、VBAでオプションボタンを使ったことがありますか?

複数の選択肢の中から、1つ選択するような画面を作るときにオプションボタンはよく使います。

そこで今回は、

・オプションボタンとは?

・オプションボタンの使い方

といった基礎的なことから、

・オプションボタンの配置・設定方法

・オプションボタンの値をVBAで使う方法

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

といった応用的な方法まで、徹底的に解説します!

オプションボタンとは

はじめに、オプションボタンについて簡単に解説します。

オプションボタンとは、次のように複数の選択肢から1つ選択するためのコントロールです。

ちょっとしたアンケートだけでなく、複雑なシステム開発でもオプションボタンを使うケースは多いので、覚えておくと便利です。

オプションボタンの使い方

次に、オプションボタンの使い方について解説します。

オプションボタンの配置・設定方法

まず、オプションボタンの配置・設定方法について解説します。

オプションボタンは、フレームの中に置くことで同じグループとして認識させることができるため、


フレーム作成

オプションボタンをフレームに配置

の流れで作っていきます。

具体的な手順は、次のとおりです。

1. ツールボックスからフレームを選択

2.ユーザーフォームにドラッグしてフォームを配置

3. ツールボックスからオプションボタンを選択

4. ドラッグしてフォームの中にオプションボタンを配置

5. プロパティを変更

※プロパティウィンドウが出ていない場合は、「表示タブ→プロパティウィンドウ」を選択するとでてきます

ただ、ここまでプロパティの設定値が多いと覚えるのが大変そうですよね。

以下最低限覚えておくと幸せになれるプロパティを紹介します。

プロパティ1:オブジェクト名

オブジェクト名はオプションボタンの値をVBAで操作するときに使うため、わかりやすい名前に変更しておくのがおすすめです。

opb〇〇1opb〇〇2opb〇〇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

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説