トップページ

#10_1 チェック/トグル/オプションボタン


チェックボックス/トグルボタン

第9勝では、ラベルやテキストボックスなど、それ単体で入力/表示を行う自由度の高いコントロールを見てきました。今回からは「はい」・「いいえ」などの2つ以上の状態を選択したり切り替えたりするコントロールを勉強します。

まずはチェックボックスから見ていきましょう。

チェックボックスの使い方

コントロールの配置についてはもう十分習得できていると思うので、下のように3つのチェックボックスを配置してみましょう。

その後、チェックボックスの状態を取得する次のマクロを作ります。

実行すると明らかなように、チェックが付いているボックスはTrueを返し、付いていないボックスはFalseを返します。この違いを利用して処理を分岐するのです。

トグルボタンも覚えよう

チェックボックスとよく似たものに、トグルボックスがあります。外見上はコマンドボタンに似ていますが、チェックボックス同様に、押されているとTrue、押されていない状態ではFalseを返します。

チェックボックスのイベント

チェックボックスのチェックの状態を切り替えることによってValueプロパティの値が変更されると、Changeイベントが発生します。これを利用することで、Valueプロパティが変更された場合に、その値によって処理を分岐することができます。

オプションボタンの使い方

チェックボックスと似ているのですが、あるグループに含まれる選択肢の中から1つの項目を選択させる場面で用いるものにオプションボタンがあります。

例えば住んでいる都道府県など、2つ以上選択させたくない場合に使います。(チェックボックスは複数回答可能なアンケートが良い例)

オプションボタンでオンにできるのはグループに1つだけです。つまり、3つのグループがあれば3つ選択できるということです。

グループを作成するには、オプションボタンのGroupNameプロパティを使います。

それではオプションボタンの状態の取得をするマクロを作りましょう。

次のマクロは、現在選択されているオプションボタンのCaptionプロパティをダイアログボックスで表示するというものです。

(応用)コントロール配列

上のオプションボタンのマクロは、何度もElseIfで繋いでいるため、くどい印象を与えます。そこで、コントロールに対して同じような処理を何回か繰り返す処理の場合に使えるのが「コントロール配列」というテクニックです。

コントロール配列を使うには、ユーザーフォームのControlsコレクションを使います。

ユーザーフォーム.Contorols(コントロール名)

というように記述します。今回は(コントロール名)の部分に("OptionButton" & インデックス番号)と記述し、インデックス番号をループさせます。&は文字列を連結させる演算子です。

このコントロール配列を用いて先ほどのマクロを書き換えると、以下のようになります。