• ベストアンサー

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さんの方法も考えられるのですね。使いようなのですね。 以後、参考にさせていただきます。 本当にありがとうございました。

関連するQ&A

  • VBAで任意の文字のその上の行を全て行削除したい

    エクセルのVBAで困っています よろしくお願いします。 VBAで任意の文字を探し その上の行を全て行削除したいのです その文字は必ず2~30行の中にあります。列はJからですが、行はランダムで毎回違います。 作業の途中までのマクロは記録コマンドで作成し、ボタンも作成してあります。 これができれば後はまた記録したマクロにて作業ができます。 アドバイス よろしくお願いします!

  • Excel VBAでの行の削除について

    Excel VBAを使用して2行ずつ行の削除をし、1行残して(3行目を残す)また2行ずつ行の削除、1行残しす(6行目を残す)をループして行う方法が知りたいです。 イメージとしては以下のような感じです。 ━━【A】━━━━ 【1】あいうえお 【2】かきくけこ 【3】さしすせそ 【4】たちつてと 【5】なにぬねの 【6】はひふへほ 【7】まみむめも 【8】やゆよ 【9】らりるれろ ━━━━━━━━━ ↓マクロ実行後↓ ━━【A】━━━━ 【1】さしすせそ 【2】はひふへほ 【3】らりるれろ ━━━━━━━━━ 当方VBA初心者ですので、できるだけわかりやすくご教授頂けると助かります。 よろしくお願いいたします。

  • エクセルの行削除VBA

    次の条件を満たすエクセルVBAの記述を教えてください。 A列に「ページTOP」の文字がある行から文末までの行を削除 A列に「PROGRAM…」のある行と次の1行を残して「4:00~…」を含む行までを削除 (例 A10 PROGRAM… A11 AB A12 hij A13 tuy A14 4:00… ※A12~A14を削除 A1からA列に「PROGRAM…」のある行まで行削除 Excel2010/WindowsXP

  • Excel VBA 1行ずつ実行するには 

    いつもお世話になっています。 Excel VBAで記述したマクロを 1行ずつ確かめながら実行する方法を教えてください。

  • VBA アクティブ行の削除

    エクセルで、アクティブにしているセルの行のA列からL列のみを削除というマクロを組みたいのですが、どのように記述したらいいのでしょうか? アクティブなセルはA列~L列のどこにあっても、その行のA列-L列を削除というようにしたいです。 (例1) A1がアクティブだった場合、A1~L1が削除される (例2) B4がアクティブだった場合、A4~L4が削除される すみませんが、お分かりになる方がいましたらよろしくお願いいたします。

  • VBAで行削除できないようにするには

    ExcelVBAマクロを使って行削除と列削除を出来ない様にしたいのですが どうすればマクロを組めばよいのでしょうか? 宜しくお願い致します。

  • エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法

    エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法 表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。 特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。 それがたくさんあり大変困っております。 エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、 5回以上削除したい場合は操作が行われませんでした。 これをマクロで行うにはどういう式を作ればいいでしょうか? 宜しくお願いします。

  • VBAの行削除について

    VBAで行を削除したいです。 データが何百行かあって、その下から空白行が最終行までできています。 その空白行部分を削除したいのですが。 どのようにコーディングすればいいのですか?

  • VBA 行の削除

    全くの初心者で、初めて質問させていただきます。 A列には、数字・空白・文字を入力したセルが混在しています。 そのA列の数字の内 0 のセルが入力されている行のみを削除するVBAの記述の仕方を教えて下さい。 宜しく御願い致します。

  • VBA 21行目~表の最終行まで行削除

    WinXPでExcel2003を使用しています。 VBAで、21行目から表の最終行までの行削除するマクロを作りたいのですが、上手くいきません。 Sub 行削除() Range("A21").CurrentRegion.Select Selection.Delete End Sub だとその上下に文字が入ったセルがあると一緒に削除されてしまうので、 どの様にすればいいのか分からないでいます。 最終行を何行目と特定せずに表の最終行を取得して、 削除範囲を設定出来るものが希望です。 どなたか教えて下さると助かります。 よろしくお願い致します。