Excel VBA オプションボタン

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 22, 2022

VBAでは、ユーザーが複数のオプションから選択できるようにするためのオプションボタンを作成できます。 オプションボタンはユーザーフォームでよく使われますが、Worksheet上でも使用することができます。このチュートリアルでは、オプションボタンを作成し、VBAでユーザーの選択肢を取得し、それをコードで使用する方法を学びます。

チェックボックスの作成方法を学びたい場合は、こちらをクリックしてください:VBA チェックボックス

オプションボタンを作成する

ワークシートにオプションボタンを挿入するには、開発タブのコントロールグループで挿入をクリックし、ActiveXコントロールの下のオプションボタンを選択します。

vba insert option button オプションボタン 挿入

画像1. ワークシートにオプションボタンを挿入する

挿入したオプションボタンを選択すると、開発タブで プロパティをクリックすることができます。

vba option button properties オプションボタン プロパティ

画像2. オプションボタンのプロパティを変更する

ここでは、オプションボタンのさまざまなプロパティを設定することができます。はじめに、オブジェクト名optOptionButton1に変更しました。これで、VBAのコードでこの名前のオプションボタンを使うことができるようになりました。

また、オプションボタンの横に表示されるテキストを男性に変更しました。これを行うには、Caption属性を設定する必要があります。

ユーザが性別を選択できるようにしたいので、別のオプションボタンに対して同様のプロセスを繰り返すことにします。2つ目のボタンはoptOptionButton2という名前で、キャプションは女性にします。既存のものをコピーしてプロパティを変更することで、新しいオプションボタンを作成することもできます。これで、ワークシートに2つのオプション・ボタンができました。

vba insert option button オプションボタン 挿入

画像3. 2つ目のオプションボタンを挿入する

VBAで選択されたオプションボタンを取得する

オプションボタンの目的は、ユーザーの決定を知ることです。この例では、もしオプションボタン1が選択されたらセルC3に男性と書き、もし2つ目が選択されたら女性と書く方法を示します。 すべてのオプションボタンは、選択されたときに起動するイベントがあります。クリックです

したがって、最初のオプションボタンについては、以下のコードをオブジェクトoptOptionButon1のイベントClickに 入れる必要があります。

Private Sub optOptionButton1_Click()

     If Sheet1.optOptionButton1.Value = True Then

         Sheet1.Range("C3") = "男性"

     End If

End Sub

同様に、このコードをオブジェクトoptOptionButton2のイベントClickに記述します。

Private Sub optOptionButton2_Click()

     If Sheet1.optOptionButton2.Value = True Then

         Sheet1.Range("C3") = "女性"

     End If

End Sub

オプションボタンの値は、オブジェクトoptOptionButton1 またはoptOptionButton2のValue属性にあります。オプションボタンの値は、選択された場合はtrue、選択されなかった場合はfalseにすることができます。

vba option button male オプションボタン 男性

画像3. 最初のオプションボタンが選択されたら男性を返す

画像3を見るとわかるように、最初のオプションボタンをクリックしたことになります。したがって、Sheet1.optOptionButton1.Valueの値はTrueなので、C3の結果は男性となります。

vba option button female オプションボタン 女性

画像4. 2番目のオプションボタンが選択されたら女性を返す

前の例と同様に、2つ目のオプションボタンを選択したので、C3の値は女性に変更されます。この場合、プロシージャoptOptionButton2_Click() がトリガされます。

ユーザーフォームでオプションボタンを使う

前述したように、オプションボタンはユーザーフォームの中で使われることがほとんどです。その方法を説明するために、まず、ユーザーフォームを挿入します。VBAエディタでモジュール名を右クリックして挿入を クリック、ユーザーフォームを選択します。

vba option button insert userform オプションボタン ユーザーフォーム

画像5. ユーザーフォームを挿入する

挿入のためのコントロールを表示するには、ツールボックスを有効にする必要があります。これを行うには、ツールバーのツールボックスのアイコンをクリックします。その後、利用可能なすべてのコントロールが表示されたウィンドウが表示されます。オプションボタンをクリックすると、ユーザーフォームに作成することができます。

vba insert option button in userform オプションボタン ユーザーフォーム

画像6.ユーザーフォームにオプションボタンを挿入する

プロパティウィンドウで、オプションボタンの名前をoptOptionButton1、キャプションを男性に変更します。同様に、女性用のオプションボタンももう一つ作成しました。ユーザーフォームを実行すると、2つのオプションボタンが表示されます。

vba userform with two option buttons ユーザーフォーム オプションボタン 2つ

画像7. ユーザーフォームに配置された2つのオプションボタン

どちらのオプションボタンが選択されたかを取得するには、先に説明したワークシートの場合と同じロジックが必要です。

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples