🫐

チェックボックスの対象シート全てを、一括でチェッククリアする(VBA)

2024/03/16に公開

はじめに

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