今、G列にデータがズラリと12万行ほどありまして。
まず5行目のセルの文字列(仮に“りんご”だとします)をコピーしまして。
6行目から23行目の「すきやき」という文字列を、“りんご”に置換します。
次に26行目の文字列(仮に“ごりら”だとします)をコピーしまして。
27行目から44行目の同じく「すきやき」という文字列を、“ごりら”に置換します。
さらに47行目の文字列(仮に“らっぱ”だとします)をコピーしまして。
48行目から65行目の同じく「すきやき」という文字列を、“らっぱ”に置換します。
このように、5行目、26行目、47行目、68行目、89行目…と、5行目を起点にして、21行毎に各行のセルをコピーしまして。
各行の下にある18行のセルが全て「すきやき」になってしまってるので、それをコピーしたセルで書き換え(置換)したいのです。
そのような処理がマクロ等で可能であればお教えいただけないでしょうか。
よろしくお願いいたします。
下記のマクロを標準モジュールにはりつけて、replace_word サブルーチンを実行してください。
Sub replace_word() col_target = 7 ' G列 word = "すきやき" last_row = Cells(Rows.Count, col_target).End(xlUp).Row For r = 5 To last_row Step 21 new_word = Cells(r, col_target).Value For rr = r + 1 To r + 18 Cells(rr, col_target) = Replace(Cells(rr, col_target), word, new_word) Next Next End Sub
=SUBSTITUTE(G5,"すきやき",INDIRECT("R" & INT( (ROW()-5)/21)*21+5 & "C7",FALSE) )