📘 Excel逆引き事典

【VBA】全てのシートをエラー処理付きで置換する方法

日々の業務では大量のデータを扱うことが多く、特定の文字列を一括で置き換えたい場合があります。手作業での置き換えは時間がかかりますし、ミスも増えてしまいます。この記事ではVBAを使って簡単に全シートの文字列置換を行う方法とコードを紹介します。

サンプルコード

VBA
Option Explicit
Sub ReplaceTextInAllSheets()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim searchText As String
    Dim replaceText As String
    
    ' 置換したい文字列を指定
    searchText = "古い文字列"
    replaceText = "新しい文字列"
    
    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler
    For Each ws In ThisWorkbook.Worksheets
        lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        For i = 1 To lastRow
            If ws.Cells(i, 1).Value Like "*" & searchText & "*" Then
                ws.Cells(i, 1).Value = Replace(ws.Cells(i, 1).Value, searchText, replaceText)
            End If
        Next i
    Next ws
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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