📘 Excel逆引き事典

【VBA】全てのシートを完全一致で値をクリアする方法

日々の業務で大量のデータを扱う際、特定の文字列を持つセルの値を全てのシートから一度に消去したいことはありませんか?この記事では、VBAを使用して簡単に実現します。手作業での削除は時間がかかりますが、VBAを使えば一瞬で完了します。

サンプルコード

VBA
Option Explicit
Sub ClearCellsMatchingExactString()
    Dim ws As Worksheet, lastRow As Long, i As Long
    Dim searchStr As String
    
    ' 検索文字列を指定
    searchStr = "削除したい値"
    
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        With ws
            lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
            ' 指定の文字列と完全一致するセルを削除
            For i = lastRow To 1 Step -1
                If StrComp(.Cells(i, 1), searchStr, vbTextCompare) = 0 Then .Rows(i).ClearContents
            Next i
        End With
    Next ws
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。