こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルマクロ 複数特定文字を含む行以外の削除

M列にある特定の文字が含む行以外のものを削除するマクロを教えて下さい。

現在ネット検索で見つかったマクロを使用しています

【現在使用中のマクロ】

Sub Sample1()
Dim i As Long
For i = Cells(Rows.Count, "M").End(xlUp).Row To 2 Step -1
If InStr(Cells(i, "M"), "検索したい文字") = 0 Then
Rows(i).Delete
End If
Next i
End Sub

これだと検索したい文字が1つしか利用できません。

「検索したい文字列1」または「検索したい文字列2」を含まない行を削除したいのですが
どのようにマクロを組めばよいのでしょうか?

こちらまったくの初心者です。

上記の書式にはこだわりませんので、わかる方教えて下さい。

投稿日時 - 2014-11-04 15:04:09

QNo.8813591

すぐに回答ほしいです

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

ん~と?


実際に削除したいのは
>「検索したい文字列1」または「検索したい文字列2」を含まない行を削除したい

文字列1を含まない,かつ,文字列2も含まない,である行を削除したいのでは?


if instr(cells(i, "M"), "文字列1") = 0 and instr(cells(i, "M"), "文字列2") = 0 then rows(i).delete shift:=xlshiftup

投稿日時 - 2014-11-04 17:14:27

お礼

その通りです!言葉足らずですみませんm(__)m

おかげで思っていた通りのものができました。
助かりました。

投稿日時 - 2014-11-04 17:31:29

ANo.2

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

If InStr(Cells(i, "M"), "検索したい文字") = 0 Then



If InStr(Cells(i, "M"), "検索したい文字1") = 0 OR InStr(Cells(i, "M"), "検索したい文字2") = 0 Then

てすればいいんじゃない?

投稿日時 - 2014-11-04 15:07:21

補足

早速の回答有難うございます。
それは試してみたのですが、なぜか「検索したい文字1」がまったく残らず、検索したい文字列2が含まれている行だけ残ってしまいます。
エラーなどは出ないのですが、何かやり方が間違っているのでしょうか。。。

投稿日時 - 2014-11-04 16:27:24

あなたにオススメの質問