• ベストアンサー

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

エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、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