こんにちは!
一例です。
Sub Sample1()
Dim i As Long, j As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next '←おまじない
For i = 2 To Cells(Rows.Count, "G").End(xlUp).Row Step 6
For j = 1 To 6
Cells(i, j).Resize(6, 1).Merge
If Cells(i, j) = "" Then
Cells(i, j) = Cells(i - 1, j)
End If
Cells(i, j).Resize(6, 1).UnMerge
Cells(i + 1, j).Resize(5, 1) = Cells(i, j)
Next j
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
こんなんではどうでしょうか?m(_ _)m
たぶんよりかっこいいコードがあると思うんですが、私のポリシー
として、「後でメンテがしやすい、可能な限り簡単なコード」って
のがありまして・・・。
Sub test()
Dim DAT_N(7) As Variant
Dim i, j As Integer
Range("G3").Select
Do
For i = 0 To 6
If Selection.Offset(0, -i) <> "" Then
DAT_N(i + 1) = Selection.Offset(0, -i).Value
End If
Next
For j = -1 To 4
If Selection.Offset(j, 1).Value = "" Then Exit Sub
For i = 0 To 6
Selection.Offset(j, -i).Value = DAT_N(i + 1)
Next
Next
Selection.Offset(6).Select
Loop
End Sub
たぶんこれでできると思います。
お礼
tom04さん、早速のご連絡ありがとうございます! いつも本当にありがとうございます!! ご教授いただきました方法で実現できました!! 何度も何度もお時間をさいていただきまして本当にありがとうございました。 これから少しづつでもご教授いtだきました様なロジックが組めるように勉強していきたいと思います。 本当にありがとうございました!m(_ _)m