• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロによる複数行の削除方法を教えて下さい)

マクロによる複数行の削除方法を教えて下さい

このQ&Aのポイント
  • エクセル2010を使用しております。初歩の質問になってしまいますが回答よろしくお願いいたします。
  • A行にデータが約1000件入っていて、これを4行ずつ削除したいと思っています。
  • 形としては最終行から不要な4行を削除して2列上に動いて、A2まで削除したら止まるでいいと思っているのですが、複数行指定から躓いております。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

今の操作を具体化すれば 2~5行目を削除 3~6行目を削除 の繰り返しですよね ならば Sub ボタン1_Click() i = 2 Do While Range("A" & i).Value <> "" Rows(i & ":" & i + 3).Delete Shift:=xlUp i = i + 1 Loop End Sub でよろしいかと

uchiaqua
質問者

お礼

ありがとうございます。 やりたいことがスマートにできました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

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

>現在は2~5行指定デリート 7~10指定デリート… で手動でやっております(汗) 「実際に」行っているのはそうじゃないことを、実際にエクセルを触ってもう一度ご自分の目と手で確認してください。 で、それをマクロにすると、大体こんな感じになります。 sub macro1()  dim r as long  r = 2  do until cells(r, "A") = ""   rows(r & ":" & r+3).delete shift:=xlshiftup   r = r + 1  loop end sub

uchiaqua
質問者

お礼

ご回答有難うございます。 こちらの記載は最初の方と似てる形になっているのですが、エクセルの動きをマクロにしたという形でしょうか。 こちらもやりたい形になっていて参考になりました。

すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

1000行程度ならこんな感じで良いかと。 行数が、5で割ると1余る行のみ残して削除しています。 なお、削除は1行づつやってます。 Sub Sample()   Application.ScreenUpdating = False   nLast = Range("A1").End(xlDown).Row   For nRow = nLast To 2 Step -1     If nRow Mod 5 <> 1 Then Cells(nRow, 1).Delete Shift:=xlUp   Next nRow   Application.ScreenUpdating = True End Sub

uchiaqua
質問者

お礼

回答ありがとうございます。 A列にという私の記載が悪かったのですが知りたいのは行の削除でした。 こちらの記載に関しても今後の参考にさせていただきます。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! データの最終行から4行削除 → 5行目を残しその2行上から4行を削除・・・ の繰り返しだとすると Sub Sample1() Dim i As Long For i = Cells(Rows.Count, "A").End(xlUp).Row To 5 Step -5 Rows(i - 3 & ":" & i).Delete Next i End Sub こんな感じではどうでしょうか? ※ データ数は必ず5の倍数になっているという前提です。m(_ _)m

uchiaqua
質問者

お礼

ご回答ありがとうございます。 前提条件があるのですね。

すると、全ての回答が全文表示されます。

関連するQ&A