• ベストアンサー

excel VBA で”27行目ごとに3行削除”について

VBAはまったく初めてです。 早急に作業を行わなければいけないことがでてきたのですが、持ち時間がないので、VBAでできないものかと思いました。 マクロの記録をやってみたのですが、うまくいきません。 記述をする場所はわかります。 毎27行目以降3行を削除していきたいのです。 どう記述していけばいいのか、どなたか教えていただけないでしょうか?

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

  • ベストアンサー
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

以下のようにすればいいかと思います。なお、最初の削除する行が下の記述では28~30になっています『Rows("28:30")』ので、その部分は場合によって変更する必要があります。式の意味はみればわかるかと思いますが・・・。 Sub Macro1() ' FOR i=0 to 200   Rows("28:30").OFFSET(i*27,0).Select Selection.Delete Shift:=xlUp NEXT i End Sub

kumafuwa
質問者

お礼

大変たすかりました! このまま、コピーしてやったら、思った通りのことができました。 本当にありがとうございました。

その他の回答 (1)

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.2

こんにちは。 (1)シートに列追加を行う (2)削除対象行の列にマーキング (例えば * を設定) (3)データフィルタ(オートフィルタ)で削除対象行を選択 (2)は、Excel VBA を使わなくともセル計算式で実現可です。ご参考までに。 ((2)の例) A1 に =ROW() B1 に =MOD(ROW()-1,30) C1 に =IF((B1-26)>0, "*", "") を設定し、2行目以降も数式をペーストする。そうすると 28, 29, 30 行のみ * がマーキングされる。 A B C  : 26 25 27 26 28 27 * 29 28 * 30 29 * 31 0 32 1  :

kumafuwa
質問者

お礼

回答をくださってありがとうございました。 先に回答していただいていたjo-zenさんの方法で無事に作業を終えることができました。 iriyakさんの方法も考えられるのですね。使いようなのですね。 以後、参考にさせていただきます。 本当にありがとうございました。