特定のセルの中に特定の文字が含まれているかを判別したくて、
「VB 文字列 含む」とかで検索して出てきたページを参考に、以下のようなコードを書いてしまいました。
Dim str As String str = Cells(1,1).Value If str.IndexOf("u") >= 0 then Cells(1,2).Value = "uが含まれる" If END
エクセルのマクロだとこれでは動かないのです。
エクセルのマクロ(Excel VBA)の場合、
InStr関数を使えばできます。
Dim str As String str = Cells(1,1).Value If InStr(str, "u") <> 0 Then Cells(1,2).Value = "uが含まれる" If END
InStr関数は、第一引数の文字列の中から、第二引数の文字列を検索して、最初に見つかった位置を返す関数です。
見つからなかった場合は「0」を返してきます。
VBのIndexOfの場合、見つからなかった場合「-1」を返します。