Excel VBA オプションボタン
In this Article
VBAでは、ユーザーが複数のオプションから選択できるようにするためのオプションボタンを作成できます。 オプションボタンはユーザーフォームでよく使われますが、Worksheet上でも使用することができます。このチュートリアルでは、オプションボタンを作成し、VBAでユーザーの選択肢を取得し、それをコードで使用する方法を学びます。
チェックボックスの作成方法を学びたい場合は、こちらをクリックしてください:VBA チェックボックス
オプションボタンを作成する
ワークシートにオプションボタンを挿入するには、開発タブのコントロールグループで挿入をクリックし、ActiveXコントロールの下のオプションボタンを選択します。
画像1. ワークシートにオプションボタンを挿入する
挿入したオプションボタンを選択すると、開発タブで プロパティをクリックすることができます。
画像2. オプションボタンのプロパティを変更する
ここでは、オプションボタンのさまざまなプロパティを設定することができます。はじめに、オブジェクト名を optOptionButton1に変更しました。これで、VBAのコードでこの名前のオプションボタンを使うことができるようになりました。
また、オプションボタンの横に表示されるテキストを男性に変更しました。これを行うには、Caption属性を設定する必要があります。
ユーザが性別を選択できるようにしたいので、別のオプションボタンに対して同様のプロセスを繰り返すことにします。2つ目のボタンはoptOptionButton2という名前で、キャプションは女性にします。既存のものをコピーしてプロパティを変更することで、新しいオプションボタンを作成することもできます。これで、ワークシートに2つのオプション・ボタンができました。
画像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にすることができます。
画像3. 最初のオプションボタンが選択されたら男性を返す
画像3を見るとわかるように、最初のオプションボタンをクリックしたことになります。したがって、Sheet1.optOptionButton1.Valueの値はTrueなので、C3の結果は男性となります。
画像4. 2番目のオプションボタンが選択されたら女性を返す
前の例と同様に、2つ目のオプションボタンを選択したので、C3の値は女性に変更されます。この場合、プロシージャoptOptionButton2_Click() がトリガされます。
ユーザーフォームでオプションボタンを使う
前述したように、オプションボタンはユーザーフォームの中で使われることがほとんどです。その方法を説明するために、まず、ユーザーフォームを挿入します。VBAエディタで、モジュール名を右クリックして挿入を クリック、ユーザーフォームを選択します。
画像5. ユーザーフォームを挿入する
挿入のためのコントロールを表示するには、ツールボックスを有効にする必要があります。これを行うには、ツールバーのツールボックスのアイコンをクリックします。その後、利用可能なすべてのコントロールが表示されたウィンドウが表示されます。オプションボタンをクリックすると、ユーザーフォームに作成することができます。
画像6.ユーザーフォームにオプションボタンを挿入する
プロパティウィンドウで、オプションボタンの名前をoptOptionButton1、キャプションを男性に変更します。同様に、女性用のオプションボタンももう一つ作成しました。ユーザーフォームを実行すると、2つのオプションボタンが表示されます。
画像7. ユーザーフォームに配置された2つのオプションボタン
どちらのオプションボタンが選択されたかを取得するには、先に説明したワークシートの場合と同じロジックが必要です。