📘 Excel逆引き事典

【VBA】全てのシートで完全一致で置換する方法

日々の業務で大量のデータを扱う際、特定の文字列を別の文字列に置き換える作業は手間がかかります。この記事では、Excel VBAを使って全シートを一括で完全一致で置換する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub ReplaceTextAcrossAllSheets()
    Dim ws As Worksheet
    Dim searchValue As String
    Dim replaceValue As String
    ' 完全一致の文字列を指定
    searchValue = "古い文字列"
    replaceValue = "新しい文字列"
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Sheets
        With ws.Cells.Replace What:=searchValue, Replacement:=replaceValue, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
            Debug.Print "シート名: " & ws.Name & ", 置換数: " & .Count
        End With
    Next ws
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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