• ベストアンサー

エクセルマクロで行を変えて100回デリート

すみません。繰り返し165行下がってデリートしたいのですが・・・ どなたか詳しい方ご教授下さいませ。 ActiveWindow.SmallScroll Down:=174 Rows("183:198").Select Selection.Delete Shift:=xlUp ActiveWindow.SmallScroll Down:=171 Rows("348:363").Select ←165行下がりデリートを繰り返しデリートしたいです。 Selection.Delete Shift:=xlUp

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

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

素直に数を数えてみます。 sub macro1()  dim r as long  for r = 183 to 183 + 165 * 100 step 165   rows(r & ":" & r + 15).delete shift:=xlshiftup  next r end sub

noname#204947
質問者

お礼

できました。私のような初心にも理解可能な記述でうれしいです。ありがとうございます。大変助かりました。

その他の回答 (2)

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

No.1です。 質問文のコードを拝見すると 一度行削除したあと、165行下がりの16行を削除!というコトのようですので、 No.2さんのコードの方が正解ですね。 どうも失礼しました。m(_ _)m

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

こんばんは! いちいちセレクトせずに一気に削除します。 Sub Sample1() Dim cnt As Long, myRng As Range Set myRng = Cells(183, "A").Resize(16) cnt = 1 Do Until cnt = 100 cnt = cnt + 1 Set myRng = Union(myRng, Cells(cnt * 165 + 18, "A").Resize(16)) Loop myRng.EntireRow.Delete shift:=xlUp End Sub これでも大丈夫だと思います。m(_ _)m

関連するQ&A