VBA開発

全てのシートの「特定文字」を置換する処理をパーツ化する【エクセルマクロ】

パーツ化とは

ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。

分かりやすく説明すると、エクセルの「関数」と同様です。
SUM関数であれば セル内に「=SUM(1+2+3)」と記載すれば、セルには「6」と表示されますよね。
値を渡せば正しい値で返ってくる動きです。

このコードをコピペでOK

'■ブック全体を部分一致で置換
Public Sub Call_ReplaceAll_xlPalt()
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Replace What:="Ver1.0", Replacement:="Ver2.0", LookAt:=xlPart
    Next ws
End Sub

'■ブック全体を完全一致で置換
Public Sub Call_ReplaceAll_xlWhole()
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.UsedRange.Replace What:="Ver1.0", Replacement:="Ver2.0", LookAt:=xlWhole
    Next ws
End Sub

今開いているブックの全てのシートに対して、Replaceメソッドで「特定文字」を「指定文字」に変更します。
「xlWhole」は完全一致。
「xlPart」は部分一致。

後継の品番が出てきた場合や、上層部の指定した文言(「株式会社」表記は「㈱」表記にしろ!)に変換したい時などに使えるかと思います。

その他

サンプル例は一つの文言のみ置換処理をしましたが、
もちろんLoop処理をさせて任意の文字を複数変更する事も可能です。

文字の置換ではなく、単純に文字を「全角」に揃えたい場合や、「半角」に揃えたい場合はこちら。
全てのシートの「半角カタカナ」を「全角カタカナ」に変換する処理をパーツ化する【エクセルマクロ】
全てのシートの「全角カタカナ」を「半角カタカナ」に変換する処理をパーツ化する【エクセルマクロ】

英語や数字は半角だけど、カタカナは全角にしたい場合はこちら。(こちらが一番実用的ですね)
全てのシートの「英数字は半角」「カタカナは全角」に変換する処理をパーツ化する【エクセルマクロ】

コメント

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