• ベストアンサー

エクセルで特定の行を削除したいのですが。

エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

マクロを使う別の方法です。 XXXの部分を特定の文字に置きかえて実行してください。 また、「特定の文字があれば」というのが、その文字列を含む、というのでなくセルの値がその文字列ならば、というのであれば、LookAt:=xlPart の部分を LookAt:=xlWhole に書き換えてください。 Sub DelLines()   Dim R As Range   Do     Set R = ActiveSheet.Range("B:B").Find(What:="XXX", LookAt:=xlPart)     If R Is Nothing Then Exit Sub     R.EntireRow.Delete   Loop End Sub

kei3210
質問者

お礼

ご回答いただきましてありがとうございます。 まさしく一発削除! できました。 ありがとうございました。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

もしB列に「特定の文字」を含む文字列があった場合という意味でしたら、こういうのはマクロの出番ですね。 以下の手順を試してみてください。 1.Altキー+F11キーでVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 ただし、以下の"*特定の文字*"の中の「特定の文字」は、実際のものに変えてください。 '*****ここから下をコピペ***** Sub test01() With ActiveSheet x = .Cells(.Rows.Count, "B").End(xlUp).Row For i = x To 1 Step -1 If .Cells(i, "B").Value Like "*特定の文字*" Then .Rows(i).Delete End If Next End With End Sub '*****ここより上までをコピペ***** 3.Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行 いかがでしょう?

kei3210
質問者

お礼

ご回答いただきましてありがとうございます。 詳しくご説明まで頂、大変わかりやすかったのですが、 私のやり方が悪いのか、マクロを実行いたしましたが、何もおこりませんでした。なぜでしょう。 お忙しい中ありがとうございました。

回答No.2

データ→フィルタ→オートフィルタを用いて消去したい行のみを表示すれば、まとめて消去できます。

kei3210
質問者

お礼

ご回答いただきましてありがとうございます。 こちらは、シンプルで簡単ですね。 こういうエクセルの使い方もあるのですね。 ありがとうございました。

  • Mr_Holland
  • ベストアンサー率56% (890/1576)
回答No.1

 並び替えを使う方法です。  データはA列とB列まで入っているとし、「特定の文字」を「対象」とします。 1)C列に頭から順に、1,2,3,4と下まで入力していきます。 2)D1セルに「=IF(ISNUMBER(FIND("対象",B1)),"要削除","")」と入力し、以下コピー 3)シート全体を選択後、D列をキーにして降順に並び替え。 ⇒上側に「要削除」が集まる。 4)D列に「要削除」とある行を選択して、行削除。 5)シート全体を選択後、C列をキーにして昇順に並び替え。 6)C列とD列を削除。

kei3210
質問者

お礼

ご回答いただきましてありがとうございます。 なるほど対象文字の列に印をつけて並べ替えて削除ですね。 こういったやり方もあるのですね、大変参考になりました。 ありがとうございました。

関連するQ&A

  • エクセルで30万行から特定の行を削除したいのですが。

    エクセルで30万行から特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロを使うのでしょうか? また、マクロを使う場合、どの位時間がかかりますでしょうか?行数が30万行ありますので。(PCのスペックは、Core2Duo 1.40GHz/メモリ3GBです) 宜しくお願いいたします。

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

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

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • エクセルで特定の行を削除したい

    こんにちは。 エクセルである列に特定の文字列がある場合にその行ごと削除するにはどうすれば良いでしょうか。 よろしくお願いします。

  • マクロで特定の文字を含む行を削除の方法

    マクロについて教えてください。(初心者です) B列にある、特定の文字(ランダムに複数の文字あります)がある場合、その行ごと削除 するマクロを教えてください。 例えば、 <B列> 2015-001 2015-002 2015-003 2015-004 と、数値があります。 2015-0002 2015-0003 の行を削除したいです。 削除対象の文字はランダムに40こほどあります。 宜しくお願いします。

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

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

  • エクセル VBA 特定文字がある行を別シートに移動

    C列にA,B,C,D,E(赤枠部分)の文字列が入力された表があります。 マクロ実行時下記のようにするには、VBAのコードをどのように記入すれば、よろしいでしょうか? AとBが入力されている行をシート2にコピー Cが入力されている行を切り取りしシート2に貼り付け(下の行は上方向にシフト) Dが入力されている行を切り取りしシート3に貼り付け(下の行は上方向にシフト) Eが入力されている行を切り取りしシート3に貼り付け(下の行は上方向にシフト) エクセルは2000及び2007です。 よろしくお願い致します。

  • エクセル 特定文字列のある列の削除と保存

    こんにちは いつもお世話になっています。 エクセル2010です 1行目に文字列が入力されています。 (1)1行目に特定文字列を含む列を削除するマクロ。 (2)1行目に特定文字列を含む列だけを残して、他はすべて削除するマクロ を教えてください。 2つ質問するのが不適当ならどちらか一方でも構いません。 指定したい文字列は複数ありますので「文字列A、文字列B、・・・」等で追記できる形だと助かります。フォーマットが決まっているので指定文字列を頻繁に変えることはありません。 特定行を削除するマクロはネット上でヒットしたんですが、列は見つかりませんでした。 マクロ記録で、文字列検索、列削除をしましたが、連携のさせ方がわかりません。 よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' Rows("1:1").Select Selection.Find(What:="あ", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate Selection.FindNext(After:=ActiveCell).Activate Columns("A:A").Select Selection.Delete Shift:=xlToLeft End Sub

  • Excelマクロ、特定行の削除

    A列に日付か文字のどちらかが入力してある表があります。  A列(日付文字) B列(時刻) C列以下(その他データ ) 日付は全て同じ日付(11月11日なら全部これ)で、文字も全て同じ文字です。 日付またはB列が時刻(さまざまな数値)の行を削除して、A列が文字の行だけ残したいのです。 Range("2:2").Select Selection.Delete Shift:=xlUp これを表範囲で繰り返すのはわかります。 "2:2"の所に変数を用いると思いますが、変数に日付の行を指定したりするコードが分かりません。 A列が文字の行を検索し、それ以外の行を削除でもよいのですよね。 よろしくお願いします。

  • 特定文字列を含まない行を削除

    以前特定文字列を含む行を削除する方法の質問をし、正規表現を置換することでできることを知りました。^.*特定の文字列.*\n 今度は特定文字列を含まない行を削除を削除したいです。 この場合どう記述すればいいでしょうか? また、特定文字列1と特定文字列2のどちらかを含まない行を削除する方法もあわせて知りたいです。

専門家に質問してみよう