オプションボタンのシートへの設置方法の詳細と使い方のコツ

VBAOptionbuttoneyecatch

エクセルで書類を作成する時、項目を選択できるようにするのがオプションボタンです。
これには2種類あり、使い方にかかわる違いもあります。
詳しいオプションボタン設置方法と使い方のコツを解説します。

こんにちは、じゅんぱ店長(@junpa33)です。

エクセルVBAコードの組み立ての中で、ワークシートにオプションボタンやチェックボックスを設置したいと思うことがあると思います。

今回は、そのオプションボタンのワークシートへの設置方法についてです。

オプションボタンのシート設置記事編成

ワークシートへのオプションボタン設置したい

vbaoptionbuttonp033

エクセルVBAコードを使って、プログラムを作る時、

ワークシートにあるリスト(一覧表)からいずれかの値を選択して

VBAコードに変数の値として利用したいと思うことがあるでしょう。

ワークシート上に設置したボタンのクリック一つで項目を選択出来れば作業もカンタン簡単です。

今回はそんなボタンの簡単設置方法を紹介します。

2種類のオプションボタンの違いと設置方法の詳細

vbaoptionbuttonp034

2種類のオプションボタンは、

「フォームコントロール」のタイプと「ActiveX」の2つのタイプがあります。

フォームコントロールのオプションボタンの場合

フォームコントロールのオプションボタンの設置

「開発」タブから「挿入」を選択します。

vbaoptionbutton004a
矢印下001

フォームコントロールでオプションボタンを選択します。

vbaoptionbutton001a
矢印下001

シートにオプションボタンを設置しました。

vbaoptionbutton005a
矢印下001

複数設置するのに、右クリックメニューでコピーを選択します。

vbaoptionbutton006a
矢印下001

ペーストで8個のオプションボタンを設置しました。

vbaoptionbutton007a

フォームコントロールのオプションボタンの設定

設置した8個のオプションボタンは、その中でどれか一つのみを選択できるようになっています。

手順1
オプションボタン「テキスト」名を変更

右クリックメニューで「テキストの編集」を選択します。

vbaoptionbutton009a
矢印下001

例えばこのようにしてみました。

vbaoptionbutton010a
手順2
イベントのマクロ登録

右クリックメニューで「マクロの登録」を選択します。

vbaoptionbutton011a
矢印下001

ダイヤログで新規作成をクリックします。

vbaoptionbutton012a
矢印下001

同様の作業を8個のオプションボタンに行っていきます。

vbaoptionbutton012ba
手順3
VBEを開きます。

Module1を開くとオプションボタンのプロシージャーが記述されています。

MEMO

フォームコントロールのオプションボタンの場合は、VBAコードが標準モジュールに記録されます

vbaoptionbutton014a
手順4
プロシージャーに実行させる内容を記述します。

セルG5にオプションボタンで選択したテキスト名を表示させます。

VBA
Sub オプション1_Click()
    Range("G5") = "トースト"
End Sub
vbaoptionbutton015a
手順5
オプションボタンの選択結果

オプションボタンを選択すると、指定のセルに選択名が表示されます。

vbaoptionbutton016a

オプションボタンの選択結果をボタン番号で表示させる場合

右クリックメニューで「オブジェクトの書式設定」を選択

コントロールタブで「リンクするセル」にセル番号を入力します。(セルG4)

vbaoptionbutton017a
矢印下001
vbaoptionbutton018a

フォームコントロールのオプションボタンの設置は、結構簡単に行うことが出来ました。

ボタン選択から後の動作のVBAコードは、目的に応じて改変させてください。

でもちょっと待ってください!

簡単で良いことばかりでもありません。

「朝食では、ハムサンドとホットコーヒー」にしたいのですが、

このボタンでは、同時に「ハムサンド」と「ホットコーヒー」を選ぶことが出来ません。

あくまでも「どれか一つ」ということが分かりました。

ActiveXコントロールのオプションボタンの場合

ActiveXコントロールのオプションボタンの設置

「開発」タブから「挿入」を選択します。

vbaoptionbutton004a
矢印下001

ActiveXコントロールでオプションボタンを選択します。

vbaoptionbutton002a
矢印下001

シートにオプションボタンを設置しました。

デザインモードが自動的に「ON」になります。

vbaoptionbutton019a
矢印下001

複数設置するのに、右クリックメニューでコピーを選択します。

vbaoptionbutton020a
矢印下001

ペーストで8個のオプションボタンを設置しました。

vbaoptionbutton021a

ActiveXコントロールのオプションボタンの設定

フォームコントロールの場合と同様に設定を行っていきます。

手順1
オプションボタン「Caption」を変更

右クリックメニューで「プロパティ」を選択します。

vbaoptionbutton022a
矢印下001

「Caption」の項目で「トースト」と変更します。

同様にほか7つのオプションボタンのプロパティのCaptionの値も変更していきます。

vbaoptionbutton023a
矢印下001

8つのボタンのCaptionをこのように仕上げました。

vbaoptionbutton024a
手順2
イベントのVBAコード記述

「トースト」のオプションボタンを

「デザインモードON」の状態の時にダブルクリックをします。

VBEが起動しシートモジュールに(今回の場合はSheet2)空のプロシージャーが記述されます。

Point
  • ActiveXのオプションボタンの場合は、基本、シートモジュールにイベントコードが記述されます。
  • シートモジュールのイベントコードは、イベントが発生したときに実行されます。ですので、オプションボタンはクリックされないとイベントコードは実行されません。
vbaoptionbutton025a
矢印下001

8個のオプションボタンすべてについて同様に行います。

vbaoptionbutton026a
手順3
プロシージャーに実行させる内容を記述します。

セルG5にオプションボタンで選択したCaptionを表示させます。

VBA
Private Sub OptionButton1_Click()
    Range("G5").Value = OptionButton1.Caption
End Sub
vbaoptionbutton027a
手順4
オプションボタンの選択結果

オプションボタンを選択すると、指定のセルに選択名が表示されます。

オプションボタンのプロパティの「Caption」を表示しますので、

この「Caption」を変更すれば、それに対応して自動的に表示も変更されます。

vbaoptionbutton028a
手順5
オプションボタンのグループ分け

ここが オプションボタンの使い方のコツ

この部分が、「フォームコントロールのボタン」と「ActiveXのボタン」の一番の違いになります。

オプションボタンを設置したデフォルトの状態では、

設置したすべてのオプションボタンが1つのグループになっています。(グループ名は設置したシート名)

設置したそれぞれのボタンのプロパティで、グループ分けの指定をすることが出来ます。

今回のデフォルトのプロパティ「GroupName」は「Sheet2」になっています。

グループを「たべもの」と「のみもの」にグループ分けをします。

vbaoptionbutton029a
矢印下001

グループ(「たべもの」と「のみもの」)ごとに選択できるようになりました。

選択したボタンの「Caption」の表示位置は、

「たべもの」はセルG5

「のみもの」はセルG6 に表示するようにVBAコードの変更をしました。

vbaoptionbutton030a

ActiveXの方のオプションボタンは、ボタンのプロパティを表示することが出来るので、

より細かな設定をすることが出来ます。

特に ActiveXのオプションボタンはグループ分けを行うことが出来るので、

プログラム作りには非常に便利です。

ActiveXのオプションボタンのON・OFFによる値は、「True」か「False」を返します。

フォームコントロールと同じように、標準モジュールでイベント発生時のVBAコードを記述すると・・・

VBA
Sub OptionButton2_Click()
    If Worksheets("Sheet2").OptionButton2.Value = True Then
        Range("I5") = Worksheets("Sheet2").OptionButton2.Caption
    Else
        Range("K5") = "False"
    End If
End Sub

という風にもVBAコードを記述することができます。

この方法ですと、エクセル起動時にこのコードを実行すれば、イベントを起こさなくても

「起動時のオプションボタンの状態(先回終了時のオプションボタンの状態)」を拾うことが出来ます。

矢印下001
vbaoptionbutton032a

オプションボタンの設置方法と使い方のコツ まとめ

vbaoptionbuttonp035

ここまで、2種類のオプションボタン 「フォームコントロール」と「ActiveX」の

設置方法の詳細を説明してきました。

個人的には、エクセルVBAコードを組み立てる上では「AxtiveX」の方が遥かに有用性が高いと感じています。

プロパティなど設定できる項目が多いので、使い慣れという点では少し時間がかかるかもしれません。

ただ、後々の使い勝手を考えれば、この「ActiveX」の方を使われることをお勧めします。

参考記事

ワークシートにコマンドボタンを設置する方法についてはこちらを参考にしてください。

vbabuttoneyecatch コマンドボタンをシートに設置する2つの方法

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min