【1秒で完結】Excel VBAのReplaceで全シート一括置換!手作業のミスをゼロにするコード

【業務効率化】VBA
スポンサーリンク

「はぁ……。この50枚もあるシートの『令和5年』を全部『令和6年』に書き換えなきゃいけないの? 手作業でやったら絶対に見落としちゃうよ……。 早く帰りたい」

そんなため息を、心の中で漏らしたことはありませんか?
私も昔、同じように「これは手作業でやるべきではないな……」と頭を抱えていました。

そんな手作業の限界を解決してくれるのが、Excel VBAのReplaceメソッドです。これを使えば、たとえ100枚のシートがあっても、ボタン一つ、わずか1秒で全ての文字を置き換えることができます。

今回は、初心者でも今日から使える「一括置換」を分かりやすく解説します!

【業務効率化】VBAの記事を見る 

1. Replaceメソッドとは?

VBAのReplaceメソッドを一言で言うなら、「超高性能なシール貼り替え機」です。

例えば、クラス全員の机に「4組」というシールが貼ってあるとします。これを「5組」に貼り替えたいとき、一枚ずつ剥がして貼るのは大変ですよね。

しかしReplaceメソッドを使えば、「この教室にある『4組』というシールを全部探して、一瞬で『5組』に貼り替えてください」と指示を出すだけで、作業が完了します。

2. 【コピペOK】全シートを一括置換するコード

まずは難しい理屈抜きですぐに使える具体的なコードをご紹介します。

このコードは、実行するだけでブック内にあるすべてのワークシートを順番に確認し、指定した文字を一度に置き換えてくれる便利なものです。

Sub AllSheetReplace()
    ' 変数の宣言
    Dim ws As Worksheet
    Dim beforeText As String
    Dim afterText As String

    ' 【ここを書き換えてください】
    beforeText = "令和5年"  ' 置き換えたい古い文字
    afterText = "令和6年"   ' 新しく入れたい文字

    ' 確認メッセージ(誤操作対策)
    If MsgBox(beforeText & " を " & afterText & " に全置換しますか?", vbYesNo) = vbNo Then Exit Sub

    ' 全てのシートを順番に処理するループ
    For Each ws In ThisWorkbook.Worksheets
        ' Replaceメソッドを実行
        ' What:=探す文字, Replacement:=置き換える文字, LookAt:=xlPart(部分一致)
        ws.Cells.Replace What:=beforeText, _
                        Replacement:=afterText, _
                        LookAt:=xlPart, _
                        MatchCase:=False
    Next ws

    MsgBox "全てのシートの置換が完了しました!"
End Sub


3. 知っておきたい「部分一致」と「完全一致」

コードの中にある LookAt:=xlPart という記述は、安全に置換を行うために非常に重要なポイントとなります。

  • xlPart(部分一致): 「東京都」を探すとき、「東京都千代田区」のように一部が含まれているセルもすべて対象になります。
  • xlWhole(完全一致): 「東京都」と一言一句ぴったり同じデータが入っているセルだけを対象にします。

ここを誤ってしまうと、書き換えたくない文字まで変わってしまうリスクがあります。そのため基本はxlPartのままで問題ありませんが、ピンポイントで指定したい場合はxlWholeに書き換えてご活用ください。

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBA
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました