オプションボタンのグループ分け

シート上に設置されたフォームコントロールのオプションボタンがあって、複数のグループに分けたい場合がある。
f:id:Infoment:20190410221401p:plain

上記の例では、「みかん」と「りんご」のどちらかを、その場で「食べる」のか「おみやげ」のどちらかを選んで欲しい。
しかしこのままでは、オプションボタンの性質として、どれか一つしか選べない。
f:id:Infoment:20190410221815g:plain

ActiveXコントロールならグループ分けは容易だが、フォームコントロールの場合、さてどうしたものか。

ここで私が知る最も簡単な方法は、グループボックスでグループ毎に囲むやり方。
f:id:Infoment:20190410222052p:plain

これなら、グループ分けの状態が直感的に理解できる。
f:id:Infoment:20190410222221g:plain

ただ、狭いレイアウトの中では、このグループボックスを「うるさい」と感じることもあるだろう。そんな場合、グループボックスを非表示にする方法があるので、参考までに紹介する。

Sub GroupBoxTest()
    ActiveSheet.GroupBoxes.Visible = False
End Sub

たったこれだけ。でもかつての私は、ここにたどり着くまで二日かかった。同じことで困っている方のためにも、備忘録として記しておこう。

ところで、知らない人から見れば、非表示化されたグループボックスに気づくことは不可能だ。もしこの方法で運用する場合、グループボックスが非表示の状態で存在していることを、取り扱い要領などにキチンと明示しておこう。

また、表示 ⇔ 非表示を一つのコードで行いたい場合は、現状をひっくり返すという方法がある。

Sub GroupBoxTest()
    ActiveSheet.GroupBoxes.Visible = Not ActiveSheet.GroupBoxes.Visible
End Sub

f:id:Infoment:20190410223239g:plain

知っていると何かと便利なので、併せて記しておきます。

参考まで。