- ベストアンサー
エクセルで特定の行を削除したいのですが。
エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。
- みんなの回答 (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
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
もし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)を選択して実行 いかがでしょう?
お礼
ご回答いただきましてありがとうございます。 詳しくご説明まで頂、大変わかりやすかったのですが、 私のやり方が悪いのか、マクロを実行いたしましたが、何もおこりませんでした。なぜでしょう。 お忙しい中ありがとうございました。
- cafe_au_lait
- ベストアンサー率51% (143/276)
データ→フィルタ→オートフィルタを用いて消去したい行のみを表示すれば、まとめて消去できます。
お礼
ご回答いただきましてありがとうございます。 こちらは、シンプルで簡単ですね。 こういうエクセルの使い方もあるのですね。 ありがとうございました。
- Mr_Holland
- ベストアンサー率56% (890/1576)
並び替えを使う方法です。 データはA列とB列まで入っているとし、「特定の文字」を「対象」とします。 1)C列に頭から順に、1,2,3,4と下まで入力していきます。 2)D1セルに「=IF(ISNUMBER(FIND("対象",B1)),"要削除","")」と入力し、以下コピー 3)シート全体を選択後、D列をキーにして降順に並び替え。 ⇒上側に「要削除」が集まる。 4)D列に「要削除」とある行を選択して、行削除。 5)シート全体を選択後、C列をキーにして昇順に並び替え。 6)C列とD列を削除。
お礼
ご回答いただきましてありがとうございます。 なるほど対象文字の列に印をつけて並べ替えて削除ですね。 こういったやり方もあるのですね、大変参考になりました。 ありがとうございました。
お礼
ご回答いただきましてありがとうございます。 まさしく一発削除! できました。 ありがとうございました。