- ベストアンサー
エクセルのマクロで行挿入する方法
- エクセルのマクロを使用して、特定の条件で行を挿入する方法について教えてください。
- エクセルの表において、コード1、コード2、コード3、コード4のいずれかが異なる場合、次の行に空白行を挿入するマクロを作成したいです。
- 具体的には、3行目と4行目の間、7行目と8行目の間、8行目と9行目の間に行が挿入されるようなマクロを作成したいと思っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなカンジで、下から順繰り調べていきます。 sub macro1() dim r as long for r = range("A65536").end(xlup).row to 3 step -1 if cells(r, "A") <> cells(r - 1, "A") _ or cells(r, "B") <> cells(r - 1, "B") _ or cells(r, "C") <> cells(r - 1, "C") _ or cells(r, "D") <> cells(r - 1, "D") then cells(r, "A").entirerow.insert shift:=xlshiftdown end if next r end sub
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 Sub Sample1() Dim i As Long i = Cells(Rows.Count, "A").End(xlUp).Row Application.ScreenUpdating = False Range("A:A").Insert With Range(Cells(2, "A"), Cells(i, "A")) .Formula = "=B2&""_""&C2&""_""&D2&""_""&E2" .Value = .Value End With For i = Cells(Rows.Count, "A").End(xlUp).Row To 3 Step -1 If Cells(i, "A") <> Cells(i - 1, "A") Then Rows(i).Insert End If Next i Range("A:A").Delete Application.ScreenUpdating = True End Sub ※ 色々なやり方があると思いますが、A列を挿入 → A列を作業用の列として、 元のA~D列をつなげたものを下から比較し、違う場合に行挿入 といった感じでやっています。m(_ _)m
お礼
お礼が遅くなり,申し訳ありません。このとおりにさせていただいたら,うまくいきました。マクロを使えることはすばらしいことですね。また,いろいろな方法があるのですね。今後勉強していきたいと思います。
お礼
お礼が遅くなり,申し訳ありません。このとおりにさせていただいたら,うまくいきました。マクロを使えることはすばらしいことですね。今後勉強していきたいと思います。