Replaceメソッド Excel2013 マクロ講座

複数の語を連続置換するマクロ

置換とは、セルに入力された文字列を別の文字列に置き換えることです。
Excelの置換検索機能はとても優れています。
それでも置換項目が多い場合は、めんどうですね。
そこで、今回は、複数の語句を連続で置換するマクロを考えます。そして次回は、置換リストを作成して連続置換を行います。
(サンプルファイルは、こちらから 2013マクロ講座35回サンプルデータ

基本的な置換マクロ~Replace メソッド

最初は、簡単な置換からです。
指定した範囲の中から検索した文字列を他の文字列に置換するにはReplaceメソッドを利用します。
Replace メソッド
Replace メソッド
次の表で「課」を「部」に入れ替えましょう。
引数はWhatとReplacementの2つだけ使います。あとは省略が可能です。
Replace メソッド2
範囲は、Range("A2:A5")です。
Sub 置換()
    Range("A2:A5").Replace What:="Excel課", Replacement:="Excel部"
End Sub
    
簡単な置換マクロ
範囲を簡単に指定したい場合は、CurrentRegion プロパティを使うと便利です。
基準セルのセルが含まれる範囲で、空白行、空白列、空白セルで取り囲まれている領域を指定できます。
Sub 置換2()
	Range("A1").CurrentRegion.Replace What:="Excel課",Replacement:="Excel部"
End Sub
    
スポンサーリンク
スポンサーリンク

複数の語を連続置換するマクロ

今度は、複数の文字列を置換しましょう。販売価格を140から150に置換し、商品名をそれぞれ変更します。
今回、同じ選択範囲について何度も操作を行うので、Withステートメントを利用します。
あ
引数 LookAtで、完全に一致するものだけ置き換えるために、 LookAt:=xlWholeを指定します。LookAtは、最初に指定したものが引き継がれるので、2回め以降は省略が可能です。
Sub 連続置換()
 Range("B2:C6").Select
 With Selection
   .Replace What:=140, Replacement:="150", LookAt:=xlWhole
   .Replace What:="サニーオレンジ・ラテ", Replacement:="サニーゆず・ラテ"
   .Replace What:="ビターキャラメル・ラテ", Replacement:="苦いキャラメル・ラテ"
   .Replace What:="ミルクキャラメル・ラテ", Replacement:="みるくきゃらめる・らて"
   .Replace What:="宇治抹茶・ラテ", Replacement:="抹茶・ラテ"
   .Replace What:="ダブルキャラメル・ラテ", Replacement:="ダブルキャラメル・Rate"
 End With
End Sub
    
先に範囲を選択してからコードを実行する場合は、以下のように書くことができます。
あ
コードを実行すると完全一致する文字列だけが置換されます。
あ
次の回では、リストを使った連続置換をするマクロを作成します。
スポンサーリンク
スポンサーリンク