top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(14)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

講座実施報告(6)

GAS(5)

アニメーション(5)

技術解説(4)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

チェックボックス(1)

Excel VBA実装例|セル選択でチェックボックス用のシェイプを自動表示(EventSelectChangeShowCheckBox)

Excel VBA実装例|セル選択でチェックボックス用のシェイプを自動表示(EventSelectChangeShowCheckBox)

Excelでチェック項目を入力したい場面って多いですよね。でも「□A □B □C」のようなチェック入力をセルに持たせると、編集が地味に面倒です。

そこで今回は、セルをクリックすると、そのセルの下にチェック項目一覧(図形)が自動表示される入力補助UIを、Excel VBAで実装してみます。

実際の動き


この動画の実装では、次のような動きになります。

  • 「□/■」を含むセルをクリックすると→ そのセルの下側に、チェック項目の図形(ボタン)が自動生成されて表示される

  • 図形をクリックすると→ 「□ ↔ ■」が切り替わり、セルの文字列も自動で更新される


動画を見たら一瞬で理解できる系のUIですが、言葉にすると「セルを編集せず、図形を押すだけでチェック入力ができる仕組み」です。

これが便利になる場面

この仕組みは、次のようなケースで特に便利です。

  • 日報・点検表・チェックリストなど、入力担当者が多いシート

  • 「選択肢のON/OFF」を素早く入力してもらいたいシート

  • セルに直接入力させると、書式崩れや誤入力が起きやすいシート


セルをダブルクリックして編集モードに入らなくても、“押すだけ”で入力できるので、現場での入力ストレスがかなり減ります。

実装のポイント:ワークシート側は「1行」だけでOK

この仕組みの肝は、ワークシートのイベント(SelectionChange)で「セル選択が変わった瞬間に、チェックUIを表示する処理」を呼ぶことです。


実際のワークシートのコードウィンドウに入れるのは、下記のようなたった1行です。

やっていることはシンプルで、**「セルが選択された瞬間(Target)」**を受け取り、そのセルにチェック項目(□/■)が含まれている場合だけ、セル直下に“押せるチェックUI(図形)”を自動生成して表示します。


つまり、ワークシート側では「イベントで呼ぶ」だけ。UI生成・削除・クリックでON/OFF・セルへの書き戻しは、すべて EventSelectChangeShowCheckBox 側で完結しています。

ソースコード(チェックUI生成+クリックでON/OFF)

ここから先は、実際に動かすためのメイン処理です。

チェックUIの生成と、図形クリックによるON/OFF切替(EventSelectChangeShowCheckBox)をまとめています。

このコードを「標準モジュール」に記述しておけば、あとはワークシート側で SelectionChange から呼ぶだけでOKです。

上記のとおり、ワークシートのコードウィンドウに1行書くだけで、動画のような動きが再現できます。


ソースコード(EventSelectChangeShowCheckBox)の解説

このコードは、ワークシートの SelectionChange イベントから「選択セル(Target)」を受け取り、セル内に □ / ■ が含まれている場合だけ、セル直下に“押せるチェックUI(図形)”を自動生成して表示する仕組みです。逆に、□ / ■ が含まれていないセルを選択した場合は、表示中のチェック図形を自動的に削除して、UIが残り続けないようにしています。


チェックUIの描画は、選択セルを基準にして行います。具体的には、高さ・隙間(Gap)・フォントサイズ・図形の幅などをパラメータとしてコード内でまとめて定義し、その設定に合わせて角丸のチェックボックス図形を縦に並べて作図します。色(背景色や文字色)も同様にまとめて指定しているため、見た目の調整はこのパラメータ部分を触るだけで対応できます。


また、作成した各チェックボックス図形には OnAction を設定し、クリック時に別プロシージャ OnActionCheckBoxShape が呼ばれるようにしています。これにより、図形を押すだけで □ ↔ ■ の切り替え(ON/OFF)が実行され、クリック操作がそのまま入力操作になるUIになります。


最後に、クリックで更新された各図形の状態を集計し、連結した文字列として 元のセルに自動反映します。つまり「セルを編集して入力する」のではなく、図形をクリックしてチェックを切り替えるだけで、セルの値が常に同期されるのがこの仕組みの狙いです。





Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page