このサンプルコードでは、下から上へ3行づつまとめて処理しています。
変数iは行ですが、3行セットの一番下の行をさします。
i-2は3行セットの一番下の行から2つ上=3行セットの1番上の行になります。
残りはコード中にコメントを入れましたので参照ください。
こんな感じでわかりますでしょうか?
Sub Sample2()
For j = 1 to 5 '対象は1列目から5列目(A~E列)
'対象列の一番下の行から3行づつ上へと処理
For i = Cells(Rows.Count, j).End(xlUp).Row To 4 Step -3
sString = Cells(i - 2, j) & vbLf & Cells(i - 1, j) & vbLf & Cells(i, j) '3行を結合した文字列を作成
Cells(i - 2, j) = sString '作った文字列を先頭行に代入
Range(Cells(i - 1, j), Cells(i, j)).Delete Shift:=xlUp '不要な2行を削除
Next i
Next j
End Sub
お礼
大変わかりやすいご説明をありがとうございます。 やりたいことが出来るようになりました。 本当にありがとうございます。 また、行き詰ったりしたものがありましたら、ご相談させて下さい。 今後とも宜しくお願い致します。