• ベストアンサー

エクセルでとある文字列にぶつかったらその行を削除

エクセルのマクロで質問です。 現在A1からZ2000くらいまですべて何がしかの文字列が埋まっています。 I列に、とある文字列(例えば「AAA」とします)がある場合はその文字列の行を削除したいと考えています。 ルーチンワークのため、手作業でこの作業をするとかなり大変なので、マクロにしてやりたいと考えています。 しかし、VBを組んだりしたことがないし、簡単なマクロの設定しかやったことがありません。 どのような操作をすればいいか、ご教示ください。 お願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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を押して、マクロ名を選択します。

sasakuri
質問者

お礼

ありがとうございます。 なるほどそれほど長いコードにはならないんですね。 活用させていただきます。

その他の回答 (1)

noname#62235
noname#62235
回答No.1

マクロを組んでもいいのですが、「オートフィルタ」を使うと簡単です。 1)A1行にタイトル行を挿入します 2)A1行に何がしか文字列を入れます(1,2,3,4・・・でもかまいません) 3)A1:Z2001を選択し、「データ」メニューから「フィルタ」→「オートフィルタ」を選びます。 4)I1のセルにできている下向きの三角ボタンをクリックし、「オプション」を選びます 5)条件選択画面が出てきますので、文字列に「AAA」を入力、条件「を含む」を選びます 6)対応する行だけが抽出されますので、全体を選択して削除します。 7)「データ」メニューから「フィルタ」→「オートフィルタ」でオートフィルタを解除します。 これで対応する行だけ削除されると思います。

sasakuri
質問者

お礼

そのとおりでした。 ありがとうございます。

関連するQ&A