オプションボタンをグループ化する(GroupNameプロパティ)
ユーザーフォームに設置したオプションボタンをグループ化するには GroupName プロパティを使用します。同じグループになったオプションボタンは相互に排他的になり、いずれか一つのオプションボタンだけが On となります。ここでは Excel のユーザーフォームで GroupName プロパティを使ってオプションボタンをグループ化する方法について解説します。
(Last modified: )
オプションボタンをグループ化する
ユーザーフォームに設置したオプションボタンをグループ化するには GroupName
プロパティを使用します。デフォルトでは GroupName
の値は空の文字列( ""
)です。
明示的にグループを設定していない場合、同じユーザーフォーム内のすべてのオプションボタンは相互に排他的となるため、いずれか一つのオプションボタンだけが選択できます。(フレームの中にオプションボタンを設置した場合を除く)。
GroupName
プロパティに同じ値を設定したオプションボタンは同じグループとなり、グループ内にあるいずれか一つのオプションボタンが選択できます。別のグループであれば別のグループ内にあるオプションボタンを同じように一つだけ選択できます。
オプションボタンのグループを設定するには GroupName
プロパティをクリックし、グループ名として設定する文字列を入力してください。
同じグループにする別のオプションボタンの GroupName
プロパティの値も、先ほど設定した値と同じものを設定します。
これで上の 2 つのオプションボタンが同じグループとなりました。下の 2 つのオプションボタンの GroupName
プロパティの値にも先ほどとは違う値を設定しておきました。これで 2 つのグループができたことになります。
ユーザーフォームを表示してみると、グループ毎にグループ内のいずれか一つのオプションボタンが選択できます。
このように GroupName
プロパティの値を変更することで、複数のオプションボタンをグループにまとめることができます。
※ GroupName
プロパティはチェックボックスでも用意されています。チェックボックスは一つ一つ独立して使用することが多いですが、 GroupName
プロパティを使用することで複数のチェックボックスを排他的に使用することもできます。
VBAのプログラムの中でGroupNameプロパティを設定する
プロパティウィンドウを使って GroupName
プロパティの値を変更する代わりに、 VBA のコードを記述して GroupName
プロパティの値を変更することもできます。
プログラムの中で GroupName
プロパティを設定する場合は次の書式を使用します。
オブジェクト.GroupName [= String ]
対象のオブジェクトの GroupName
プロパティに対してグループ名として設定する文字列を代入してください。同じグループ名が代入されたオプションボタンが同じグループになります。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で GroupName
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() OptionButton1.GroupName = "Member" OptionButton2.GroupName = "Member" OptionButton3.GroupName = "Document" OptionButton4.GroupName = "Document" OptionButton1.value = True OptionButton3.value = True End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。それぞれのグループ毎に、同じグループにあるオプションボタンのいずれか一つを選択できます。
このように VBA のプログラムの中で GroupName
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで GroupName プロパティを使ってオプションボタンをグループ化する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。