- ベストアンサー
エクセルVBAで特定の文字を含まない行を削除する
エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 例えば、こんなふうにしたらどうでしょう。 ただし、空白行はどうするとか、細かい仕様が決めていません。 '------------------------------------------- Sub MarcoTest1() Dim c As Range Dim ur As Range Const sF As String = "りんご" With ActiveSheet For Each c In .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp)) If Not (c.Value Like "*" & sF & "*" Or c.Offset(, 1).Value Like "*" & sF & "*") Then If ur Is Nothing Then Set ur = c Else Set ur = Union(c, ur) End If End If Next c If Not ur Is Nothing Then ur.EntireRow.Delete shift:=xlShiftUp End If End With End Sub '-------------------------------------------
その他の回答 (1)
- kmetu
- ベストアンサー率41% (562/1346)
多分 IF B列にりんごがない thenにしたと思いますのでそこで IF B列にりんごがない and C列にりんごがない then 削除するコード と言う風にすればいいと思われます。
お礼
ありがとうございました。 回答が早くてうれしかったです。
お礼
回答ありがとうございます。 参考通りに書き換えて使ってみたら上手くいきました!!