• ベストアンサー

エクセルで行を削除するコマンド

こんにちは、お世話になります。 エクセルのVBAで、↓こんなことをしたいのですが、教えてください。  A列  B列 1 a   11 2 b   12 3 c   20 4 d   21 B列が20以上の時、行ごと削除する。 B列が「20の時」だったら、なんとかうまくいったのですが、 以上、以下、というのが全然わかりません。 それから、もし、皆さんが参考にされているサイトなどがあれば教えてください。 よろしくおねがいします。

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

  • ベストアンサー
回答No.1

これで、どうでしょうか? 試す時は本番のデータでなく、適当なサンプルで確かめてから使って下さいね。 Sub LineDelete() Range("B1").Activate Do While ActiveCell.Value > "" If ActiveCell.Value >= 20 Then ActiveCell.Rows.Select Selection.Delete Shift:=xlUp Else ActiveCell.Offset(1, 0).Activate End If Loop End Sub ちなみに20以上は >=20 と書きます。 以下は <= 20 ですね。

yu0614
質問者

お礼

素早い回答、本当にありがとうございます! ばっちりできました。 >ちなみに20以上は >=20 と書きます。 >以下は <= 20 ですね。 これが知りたかったです^^ また何かありましたらよろしくおねがいします!

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

その他の回答 (1)

回答No.2

これでいけると思います。 Sub Macro1() Dim x As Integer, n As Integer With ActiveSheet x = .Range("B65536").End(xlUp).Row For n = x To 1 Step -1 If .Cells(n, 2).Value >= 20 Then .Rows(n).Delete Shift:=xlUp Next n End With End Sub

yu0614
質問者

お礼

早速、ありがとうございました! 試してみましたが、ばっちりできました! 本当にありがとうございます。 また、なにかありましたらよろしくおねがいします。

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

関連するQ&A

  • エクセル VBAにて行削除をしたい…

    エクセル2003にて VBA初心者です。 A列1~100に101~200までに番号が振ってあります。 Z列に記入がない場合はその行を削除するVBAを教えてください。 例  A  B  C  D  E  F …… Z 1  101               文字有り 2  102               ブランク 3  103               ブランク 4  104               文字有り 5  105               文字有り … 99  199              文字有り 100  200              ブランク この様な場合2,3,100の行ごと削除をするという形式のものです。 また、この場合A列の番号も自動で変われば(104が102になる等)最高です。 詳しい方教えてください。よろしくお願いします。

  • ExcelのVBAで複数行削除を行う場合

    Excel2007のVBAで複数行を削除する方法を教えて下さい。 Excel2003で使用していたマクロが使えなくなってしまいました・・・。 下記のようなExcelシートに対して複数行ずつ行を削除し、削除対象が無くなるまで 削除処理を行うか、指定した行まで削除処理を行うという事をしたいのですが うまく動きません。 例      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc1 2行目             ccc2 3行目             ccc3 4行目             ccc4 5行目 aaa2   bbb2  ccc1 6行目             ccc2 7行目             ccc3 8行目             ccc4 例に対しての結果      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc4 2行目 aaa2   bbb2  ccc4 例に対して、複数行(指定した行数ここでは3行)の削除を行いたいのですが、 単純に複数行(3行)ずつ削除していくのではなく。 1行目や5行目にあるように文字や情報が入力されているA列とB列の情報は 残しつつ、4行目のC列以降の列の情報はすべて活かしていくという事をしたいのです。 Excel2003の時に使用していたVBAは以下のものです。 Sub 行を削除するマクロ() Workbooks("xxxx.xlsx").Activate '処理を行いたいExcel ※1 n = n + 0 LastRow = 2138           '処理を終了させたい行 ※2 Sheets("Sheet1").Select '処理を行いたいシート ※3 Do Until (n > LastRow) Rows(n + 4).Delete Shift:=xlsiftUp '削除したい行指定 ※4 n = n + 3 Loop End Sub 皆様の良いアドバイスやお知恵をお貸しください。 よろしくお願いします。

  • Excelでマクロを使用した削除に関して

    マクロ初心者です。 Excelにて、以下のような表データがあるとします。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50  a   b   c   d 3行  51  e   f    g   h    4行  52  i    j    k   l この表の中で、A列と1行目の値が同じになる交点となるセルの値"以外"を 削除して以下のように表示させたいのですが、 その方法がわかりません。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50      b       3行  51  e          h    4行  52          k    単純な行削除・列削除ではないため、 頓挫しています。お知恵を拝借したく、よろしくおねがいします。

  • エクセルまたはVBAで重複行を削除

    例えば、 A B 1 1 a 2 2 b 3 3 c 4 4 d 5 4 d 6 5 e 7 6 g 8 6 g といった表があるとします。 A列をキーに、昇順にされた一覧表です。 ここで番号が重複している行、この例では4行目と5行目、7行目と8行目がそうです。 こういった重複した行を検索して、行削除したいのですがどんな方法が可能でしょうか? 最終的にはVBAでのイベントになるでしょうが、それ以前にエクセルで前準備などしておくようなことは必要でしょうか? 表自体はかなり膨大な量のデータベースです。 よろしくお願いします。

  • 重複行を削除

    重複する行をVBAコードで削除したいのですが A列 B列 C列 あ  1  a あ  1  a あ  2  a い  1  a い  2  c い  2  c A列 B列 C列 あ  1  a あ  2  a い  1  a い  2  c のようにABC列同一文字は1行にしたいのですがVBAコード、関数の解る方ご教授願います。

  • エクセル VBA データ並び替えと行削除

    エクセル2003にて VBA初心者です。 以下のようなデータがあります。  列A    列B     列C  識別   部品番号  ユニット         A10000   *100         A10001   *101         A10002   *102  *     A10002   *103         A10003   *104  *     A10003   *105  *     A10003   *106  ・        ・      ・  ・        ・      ・  ・        ・      ・ 列Bには部品番号が、列Cにはユニット名が記入されています。 同じ部品番号でもユニットが異なる場合には、列Aに*が記入されています。 このようなデータが20,000行ほどあります。 上記のようなデータを以下のように並べ替えたいと考えております。  列A    列B      列C     列D     列E  識別   部品番号   ユニット   ユニット  ユニット        A10000    *100        A10001    *101        A10002    *102     *103        A10003    *104     *105     *106 VBAを利用すればできるんだろうなーと思っていますが、 見当もつきません。 どうぞよろしくお願いいたします。

  • エクセルで同じ数値の行を削除

    エクセルで以下のような1000行位のデータがあります。 A列 B列 大阪 1,001  東京 1,200 高知 1,300 大阪 1,200 なら 1,000 神戸 1,001 これらからB列が同じ数値の行を削除し、以下のように するにはどうしたら良いでしょうか? よろしくお願いします。 A列 B列 東京 1,200 高知 1,300 大阪 1,200 なら 1,000

  • エクセルVBAで特定の文字を含まない行を削除する

    エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。 

  • 合計が0の行を削除

    計算式が入力されており、合計が0(A,B列に数値が入力 されていない)の行を削除するVBAを教えてください。   A  B  C    1  10  5 15 2       0 3  20  6 26 C列に計算式が入力されています。 50行目まで入力されています。 オートフィルタを使用し、抽出された行を削除する方法が あると思いますが、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

専門家に質問してみよう