🫐
チェックボックスの対象シート全てを、一括でチェッククリアする(VBA)
はじめに
Excelシートごとにチェックボックスを一括クリアする機能が必要になったので、VBAでチェックボックスの一括クリア処理を実装しました。
機能として
Googleなどで検索すると、以下の記事が検索されます。
チェックボックスを一括クリア
こちらの方法を使うと、シートごとに削除用のオブジェクトを作らなければならず、面倒なので対象シート全てで、一括でチェックを外すVBAマクロを開発しました。
ソースコード
実装したソースコードです。
'各シートのデータを一括削除する
Sub CheckClear()
'シート数変数の取得
Dim sheet_count As Integer
sheet_count = Worksheets.Count
'ワークブック、ワークシート変数の定義
Dim wb As Workbook
Set wb = Workbooks("スポーツジム持参物確認.xlsm")
Dim ws As Worksheet
'チェックボックスオブジェクト変数の定義
Dim cb As CheckBox
Dim i As Integer
'開始シート番号
Dim start_num As Integer
Dim end_num As Integer
'終了シート番号
start_num = 2
end_num = sheet_count
'各シートを呼び出し、チェックをOffにする。
For i = start_num To end_num
'シート番号をWorkSheetオブジェクトに設定する
Set ws = wb.Worksheets(i)
For Each cb In ws.CheckBoxes
'チェックボックスにチェックが入っていたらチェックを外す
If cb.Value = xlOn Then
cb.Value = xlOff
End If
Next cb
Next
結果
最後に
対象シート全てのチェックボックスのチェックを外す際に、参考になればと思います。
Discussion