失礼2回に分けなくても1回でいけました。挿入位置を勘違いしてたので最初できなかった。
Sub Test3()
Dim MRCount As Long
Application.DisplayAlerts = False
With Cells(ActiveCell.Row, "A").MergeArea
MRCount = .Rows.Count
End With
Cells(ActiveCell.Row, "A").Resize(1, 5).Copy
Cells(ActiveCell.Row + MRCount, "A").Resize(1, 5).Insert Shift:=xlDown
Cells(ActiveCell.Row, "A").Resize(MRCount + 1, 1).Merge
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
結合したセルを再度追加結合する可能性を考えてA列とBからE列を分けて別に挿入ペーストしてます。
Sub Test()
Dim MRCount As Long
Application.DisplayAlerts = False
With Cells(ActiveCell.Row, "A").MergeArea
MRCount = .Rows.Count
End With
Cells(ActiveCell.Row, "A").Copy
Cells(ActiveCell.Row + MRCount, "A").Insert Shift:=xlDown
Cells(ActiveCell.Row, "B").Resize(1, 4).Copy
Cells(ActiveCell.Row + 1, "B").Resize(1, 4).Insert Shift:=xlDown
Cells(ActiveCell.Row, "A").Resize(MRCount + 1, 1).Merge
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
質問者
補足
ありがとうございます。
ネットを参考に以下で処理できそうでしたが、
ターゲットセルが既に結合されている場合は、エラーとなりました。
どこを修正すべきですか ?
Sub 行挿入()
Dim myRng As Range, myRow As Long
Cells(ActiveCell.Row, "A").Resize(1, 5).Copy
Cells(ActiveCell.Row + 1, "A").Resize(1, 5).Insert Shift:=xlDown
Application.CutCopyMode = False
Set myRng = Range("A1")
For myRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
With Cells(myRow, 1)
If .Value = .Offset(1, 0).Value Then
Set myRng = Union(myRng, .Offset(1, 0))
Else
Application.DisplayAlerts = False
myRng.Merge
Application.DisplayAlerts = True
Set myRng = .Offset(1, 0)
End If
End With
Next
MsgBox "日付を挿入しました", vbOKOnly, "挿入完了"
End Sub
お礼
何度もありがとうございます。 私の考えは、甘かったようなので 提示いただいた「Test3()」を素直に利用させて頂くことにしました。 コードをコピペして、希望の処理が出来るのを確認しました。 改めて、お礼申し上げます。