プロが教える店舗&オフィスのセキュリティ対策術

エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。

” りんご ”がB列だけにしかない場合は作成できたのですが、
” りんご ”がB列とC列にも含まれていて
どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。

教えてください。 

A 回答 (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

'-------------------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/12 22:39

多分 IF B列にりんごがない thenにしたと思いますのでそこで


IF B列にりんごがない and C列にりんごがない then 削除するコード
と言う風にすればいいと思われます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/12 22:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!