• ベストアンサー

エクセルVBAで特定の文字を含まない行を削除する

エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。 

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 '-------------------------------------------

kirikiriya
質問者

お礼

回答ありがとうございます。 参考通りに書き換えて使ってみたら上手くいきました!!

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

多分 IF B列にりんごがない thenにしたと思いますのでそこで IF B列にりんごがない and C列にりんごがない then 削除するコード と言う風にすればいいと思われます。

kirikiriya
質問者

お礼

ありがとうございました。 回答が早くてうれしかったです。

関連するQ&A