- ベストアンサー
エクセルでとある文字列にぶつかったらその行を削除
エクセルのマクロで質問です。 現在A1からZ2000くらいまですべて何がしかの文字列が埋まっています。 I列に、とある文字列(例えば「AAA」とします)がある場合はその文字列の行を削除したいと考えています。 ルーチンワークのため、手作業でこの作業をするとかなり大変なので、マクロにしてやりたいと考えています。 しかし、VBを組んだりしたことがないし、簡単なマクロの設定しかやったことがありません。 どのような操作をすればいいか、ご教示ください。 お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#01さんの回答のようにオートフィルタが簡単だと思いますが、マクロがよければ… 以下はI列のデータに"AAA"の文字列が含まれるとき、その行を削除するマクロです。("ZAAA"、"AAAR"等も行削除対象) Sub Macro2() Dim r As Range Application.ScreenUpdating = False Set r = ActiveSheet.Columns("I").Find("AAA", LookIn:=xlValues) Do While Not r Is Nothing r.EntireRow.Delete Set r = ActiveSheet.Columns("I").Find("AAA", LookIn:=xlValues) Loop Application.ScreenUpdating = True End Sub マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はALT+F8を押して、マクロ名を選択します。
その他の回答 (1)
マクロを組んでもいいのですが、「オートフィルタ」を使うと簡単です。 1)A1行にタイトル行を挿入します 2)A1行に何がしか文字列を入れます(1,2,3,4・・・でもかまいません) 3)A1:Z2001を選択し、「データ」メニューから「フィルタ」→「オートフィルタ」を選びます。 4)I1のセルにできている下向きの三角ボタンをクリックし、「オプション」を選びます 5)条件選択画面が出てきますので、文字列に「AAA」を入力、条件「を含む」を選びます 6)対応する行だけが抽出されますので、全体を選択して削除します。 7)「データ」メニューから「フィルタ」→「オートフィルタ」でオートフィルタを解除します。 これで対応する行だけ削除されると思います。
お礼
そのとおりでした。 ありがとうございます。
お礼
ありがとうございます。 なるほどそれほど長いコードにはならないんですね。 活用させていただきます。