チェックリストの入力を簡単にしたい
エクセルでチェックリストを作成し、運用している企業様も多いのではないでしょうか。
単純なシングルクリックでチェックできれば、チェック自体も簡単に行えます。
SelectionChangeを利用して、シングルクリックでチェックを付けましょう。
セルクリックした場合に処理を実行する【SelectionChange】【ExcelVBA】
チェックリストをクリックで簡単入力するサンプルコード
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '■特定セル範囲で起動させる If Not Intersect(Target, Range("A1:A500")) Is Nothing Then Cells(Target.Row, Target.Column + 1) = "〇" 'チェック結果 Cells(Target.Row, Target.Column + 2) = Format(Now(), "yyyy/mm/dd") 'チェック日 Cells(Target.Row, Target.Column + 3) = Format(Now(), "hh:mm:ss") 'チェック時間 Cells(Target.Row, Target.Column + 4) = "佐藤" 'チェック者 End If End Sub
マクロのいい所は、今回のように一つの動作で複数のセルにデータを反映させるなど効率化が出来ます。
今回はシングルクリックですが、ダブルクリックで処理する事も可能です。
セルがダブルクリックされた場合に処理を実行する【BeforeDoubleClick】【ExcelVBA】
注意事項
- 標準モジュールでは動作しません。ワークシートモジュールに記載しましょう。
- サンプルコードなので最低限しか記載していませんが、範囲はCellsをうまく使用するべきです。
RangeとCellの使いわけ【VBA基本】 - 上記の場合、開始行が不変であれば、定数にしましょう。
- 上記の場合、最終行は可変だと思いますので、パーツ化した処理で最終行を取得しましょう。
ExcelVBAマクロ「最終行」「最終列」の判断処理をパーツ化する
ExcelVBAマクロ-ヘッダー行を加味して「最終行」取得処理をパーツ化する
関連記事
特定のセルをクリックした場合に処理を実行する【SelectionChange】【ExcelVBA】
特定のセルをダブルクリックした場合に処理を実行する【BeforeDoubleClick】【ExcelVBA】
コメント