この記事では、シート上にある名前を付けたチェックボックス(フォームコントロール)のチェックを別のコントロールで切り替える方法についてご説明します。
※今回は、別コントロールにActiveXコントロールのコマンドボタンを使って説明します。
【動画】Excelのシート上に設置したListboxにCSVファイルのデータを表示させている実際の動き
本題に入る前に、まずは次の動画をご覧ください。
コマンドボタンをクリックすると、シート上にある名前を付けたチェックボックス(フォームコントロール)のチェック状態を判定し、チェックが付いていればチェックを外し、チェックが外れていればチェックを付けています。
シート上に設置ている名前を付けたチェックボックス(フォームコントロール)のチェックを別のコントロールで切り替える方法
シート上にある名前を付けたチェックボックス(フォームコントロール)のチェックを別のコントロールで切り替えるには、次の流れの通りに行います。
作業の流れ
【STEP.1】シート上にフォームコントロールのチェックボックスを設置
シート上にフォームコントロールのチェックボックスを設置します。
ここでは、チェックボックスの文字は削除します。
【STEP.2】シート上にフォームコントロールのチェックボックスを設置
シート上にActiveXコントロールのコマンドボタンを設置します。
【STEP.3】シート上にある名前を付けたチェックボックス(フォームコントロール)のチェック状態を判定し、チェックの有無を判定
シート上にある名前を付けたチェックボックス(フォームコントロール)のチェック状態を判定し、チェックの有無を判定します。
【STEP.4】シート上にある名前を付けたチェックボックス(フォームコントロール)にチェックが付いている場合はチェックを外し、チェックが付いていなければチェックを付ける
シート上にある名前を付けたチェックボックス(フォームコントロール)にチェックが付いている場合はチェックを外し、チェックが付いていなければチェックを付けます。
コードの例
Excelのマクロのコード(例)
Private Sub CommandButton1_Click() If CheckBoxes("cbx_test").Value = xlOn Then 'チェックボックスにチェックが付いている場合 'チェックボックスをOFFにする CheckBoxes("cbx_test").Value = xlOff ElseIf CheckBoxes("cbx_test").Value = xlOff Then 'チェックボックスにチェックが付いていない場合 'チェックボックスをONにする CheckBoxes("cbx_test").Value = xlOn End If End Sub
コードの解説
コードは、チェックボックスのONOFFの状態を判定し、チェックが付いている場合はチェックを外し、チェックが付いていなければチェックを付けています。
チェックボックスには「cbx_test」という名前が付けられており、その「cbx_test」というチェックボックスを特定するには「CheckBoxes(“cbx_test”)」とコードに書きます。
チェックボックスが特定できれば、そのチェックボックスのプロパティに値を判定したり、設定することができます。
なお、チェックボックスのチェックの状態はValueプロパティの値で判定することができます。
チェックボックスのチェックがONの状態のときはValueプロパティが1、OFFの状態のときは-4146の値が設定されています。
チェックボックスのチェックをONにしたい場合は1を、OFFにしたい時は-4146の値をValueプロパティに設定します。
なお、コードのxlOnとxlOffは定数で、xlOnは1、xlOffは-4146という値のことを意味します。
動作確認
マクロを実行後、実際にチェックボックスの表示は次の画像の通りです。
チェックボックスのチェックが外れました。
チェックボックスのチェックが付きました。
最後に
本記事では、シート上にある名前を付けたチェックボックス(フォームコントロール)のチェックを別のコントロールで切り替える方法についてご説明しました。
チェックボックスのチェックはValueプロパティの値を、ONOFFそれぞれ用の値を設定すればOKです。
ONは1または定数「xlOn」を、OFFは-4146または定数「xlOff」をValueプロパティに設定します。
また、チェックボックスを特定するには「CheckBoxes」の引数にチェックボックスの名前を設定します。
例えば、cbx_testという名前のチェックボックスを特定するなら「CheckBoxes(“cbx_test”)」とコードに書きます。
シート上にある名前を付けたチェックボックス(フォームコントロール)のチェックを別のコントロールで切り替えたい場合は本記事を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。