新米エンジニアの失敗再発防止メモ

自分そしてこの世界の皆が、同じ失敗をしないためのメモ

Twitterやってます!@rakuton_t
欲しいものリストのブタメンを送ってくれた方、ありがとうございます!

エクセルのマクロは「VB」ではなく「Excel VBA」

特定のセルの中に特定の文字が含まれているかを判別したくて、
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」を返します。

私の記事が役に立ったら、どうぞ何か買ってください!→ Amazon欲しいものリスト