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

解決済みの質問

特定の文字を除くVBA

特定の文字を除くためのVBAについて質問させてください。
あるマクロを実行したときに、インプットボックスを表示させ、
特定の文字や数字を入力します。そして、H列に入力した文字や数字を含まない行にある処理を行いたいと思います。

以下のようにVBAを入力してみたのですが、インプットボックスに入力した文字をうまく除外してくれません。一体どういった書き方が正しいのでしょうか~?!
ご教授いただけるととても助かります!
よろしくお願いいたします。


message = InputBox("文字を入力して下さい")

If Not Cells(行, H).Value Like "*" & message & "*" Then

処理

投稿日時 - 2017-12-30 15:40:36

QNo.9413257

困ってます

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

Sub test02()
msg = InputBox("指定する文字列入力")
lr = Range("H10000").End(xlUp).Row
For i = 2 To lr
f = Range("h" & i).Value Like "*" & msg & "*"
If f = True Then
MsgBox i & "行に含む"
Else
MsgBox i & "行に含まない"
'ここに処理のコードを入れる!"
End If
Next i
End Sub
ーー
Msgbox  の行は、少数行の例でのテストが終わって、納得したら、それらの行を抹消する。
ーー
RangeのFindメソッドによる方法もあるが、Like演算子の方が簡単かも。

投稿日時 - 2017-12-30 22:33:38

お礼

ご回答いただいてありがとうございます! ^^) _旦~~結局私が入力していたVBAは、Cellsのあとの(行,H)のH部分に「"」を入力し忘れていたことがうまく処理しなかった原因だったのですが、If ~ True Thenという方法もあるのですね!こちらも試してみたところ、うまく処理をしてくれました(*^-^*)この度はお忙しいところ、ありがとうございました!

投稿日時 - 2018-01-03 09:37:09

ANo.2

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

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

回答(2)

ANo.1

こんな感じでしょうか。

Sub test()
 Dim Message As String

 Message = InputBox("文字を入力して下さい")

 With ThisWorkbook.Sheets(1)
  If InStr(.Cells(2, 3).Value, Message) > 0 Then
   MsgBox ("あります")
  Else
   MsgBox ("ありません")
  End If
 End With

End Sub

投稿日時 - 2017-12-30 16:20:16

お礼

初めまして、ご回答いただいてありがとうございます!InStrについて検索してみたところ、該当の文字を検索するこういった方法もあるんですね…。しかも文字を切り出したりするのにも使えるのですね!今のところ使用できそうな場面はないのですが、今後何かの役に立ちそうです!この度はご回答いただいてありがとうございました★(o^―^o)

投稿日時 - 2018-01-03 09:40:13