動的なチェックボックスを実現!? #Excel #LifeHacks #Office
私が作業管理(作業内容×担当クラス)をExcelで運用していて一番ハマったのが、「チェックボックス 連動」です。やりたいことはシンプルで、C~F列にチェックが並んでいて、C列の「全」をONにしたら同じ行のD~F(例:議事録の作成/進行役/発表スライド作成/道具・備品の準備/清掃・片付け など)も一括でON、逆に「全」をOFFにしたら一括でOFF、さらにD~Fが全部ONになったら「全」も自動でON…という動きです。 まず前提として、フォームコントロールのチェックボックスは“見た目”なので、必ず各チェックボックスをセルにリンクします(右クリック→コントロールの書式設定→「リンクするセル」)。リンク先セルに TRUE/FALSE が入る状態にしておくと、VBAでも関数でも扱いやすくなります。ここができていないと「関数 チェックボックス」系の検索で出てくる式を入れても動かないので注意しました。 次にVBA側の考え方は「編集されたセル(Target)が、チェック管理の範囲内なら処理する」です。例として、4~23行、C~F列を対象にし、チェックが変わった時に連動させます。ポイントは2つで、(1) 1セルだけ変更された時だけ動かす(CountLarge=1)、(2) 自分の処理で他セルを書き換えるのでイベントの再発火を防ぐ(Application.EnableEvents=False)です。これを入れないと無限ループになりやすく、初心者向けの「vba チート」的な短縮コードよりもまず安全設計を優先しました。 運用イメージ: ・C列(全)がTRUEになったら、同じ行のD~FをTRUEにする ・C列(全)がFALSEになったら、同じ行のD~FをFALSEにする ・C列以外(D~F)が変更されたら、D~FがすべてTRUEの時だけC列をTRUE、それ以外はFALSE この形にすると、タスク管理のチェックが増えても同じ考え方で拡張できます(列を増やすならD~Fの範囲を広げるだけ)。 もし環境的にチェックボックス(フォームコントロール)が使えない/配布先で壊れる場合は、代替としてドロップダウンで「○」入力にしても運用できます。TRUE/FALSEの代わりに「○」か空欄で判定するだけなので、社内の制限があるPCでも回せました。 最後に、オフィス移転 チェックリスト エクセルのような用途でも同じ仕組みが便利でした。「全」=完了、各項目=梱包/回線/備品/清掃…のようにしておくと、進捗確認が一瞬です。チェックボックスが連動すると“押し間違い”も減って、毎日の更新がかなり楽になりました。

































