📘 Excel逆引き事典

【VBA】可視セル(フィルタ結果)を部分一致で値をクリアする方法

手作業で大量のデータから特定の部分一致文字列を持つ可視セル(フィルタ結果)を探すのは時間がかかります。この記事では、VBAを使用して効率的に該当するセルの値をクリアする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub ClearFilteredCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") '対象シート名を指定
    Dim lastRow As Long, i As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row '最終行取得
    Application.ScreenUpdating = False '画面更新停止
    For i = 2 To lastRow 'データ範囲のループ開始(A列から始める想定)
        If Not Intersect(ws.Rows(i), ws.Rows.Hidden) Is Nothing Then GoTo SkipLoop '非表示行スキップ
        Dim cellValue As String
        cellValue = ws.Cells(i, 1).Value 'セル値取得
        If InStr(cellValue, "部分一致文字列") > 0 Then '部分一致チェック
            ws.Cells(i, 1).ClearContents '該当セルクリア
        End If
    SkipLoop:
    Next i
    Application.ScreenUpdating = True '画面更新再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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