パーツ化とは
ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。
処理はパーツ単位で分ける事を心掛けましょう。
分かりやすく説明すると、エクセルの「関数」と同様です。
SUM関数であれば セル内に「=SUM(1+2+3)」と記載すれば、セルには「6」と表示されますよね。
値を渡せば正しい値で返ってくる動きです。
このコードをコピペでOK
'■ブック全体を部分一致で置換 Public Sub Call_ReplaceAll_xlPart() 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処理をさせて任意の文字を複数変更する事も可能です。
文字の置換ではなく、単純に文字を「全角」に揃えたい場合や、「半角」に揃えたい場合はこちら。
全てのシートの「半角カタカナ」を「全角カタカナ」に変換する処理をパーツ化する【エクセルマクロ】
全てのシートの「全角カタカナ」を「半角カタカナ」に変換する処理をパーツ化する【エクセルマクロ】
英語や数字は半角だけど、カタカナは全角にしたい場合はこちら。(こちらが一番実用的ですね)
全てのシートの「英数字は半角」「カタカナは全角」に変換する処理をパーツ化する【エクセルマクロ】
コメント