• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロについて)

エクセルのマクロで行挿入する方法

このQ&Aのポイント
  • エクセルのマクロを使用して、特定の条件で行を挿入する方法について教えてください。
  • エクセルの表において、コード1、コード2、コード3、コード4のいずれかが異なる場合、次の行に空白行を挿入するマクロを作成したいです。
  • 具体的には、3行目と4行目の間、7行目と8行目の間、8行目と9行目の間に行が挿入されるようなマクロを作成したいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

こんなカンジで、下から順繰り調べていきます。 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

motoyosiyh
質問者

お礼

お礼が遅くなり,申し訳ありません。このとおりにさせていただいたら,うまくいきました。マクロを使えることはすばらしいことですね。今後勉強していきたいと思います。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 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

motoyosiyh
質問者

お礼

お礼が遅くなり,申し訳ありません。このとおりにさせていただいたら,うまくいきました。マクロを使えることはすばらしいことですね。また,いろいろな方法があるのですね。今後勉強していきたいと思います。

関連するQ&A