文字列内の文字列検索と位置取得 InStr



InStr(start, string1, string2)
InStr(検索開始位置, 検索対象文字列, 検索する文字)

~~(string2)を含む文字列の検索方法です。
検索文字がない場合は0を返すので文字の有無の判断として使用できます。
文字列[string1]から指定した文字列[string2]を検索し、最初に見つかった文字位置 (先頭からその位置までの文字数) を返します。
開始位置[start]を整数で指定できます。

例(string1 = "ABCDE.xls" 、エクセル上に表示します)
Sub ins()
    Dim Moji As String
    Moji = "ABCDE.xls"

    '".xls"の位置を取得
    Range("a1") = InStr(Moji, ".xls")

    '".xls"以前の文字を抜き出す
    Range("a2") = Mid(Moji, 1, InStr(Moji, ".xls") - 1)
End Sub


上の例では省略可能な開始位置[start]は指定していませんので[string1]の1文字目から数えています。


例2(文字の存在有無を確認)
Sub searchIns()
    Dim ws As Worksheet
    Dim i As Long 'カウント用
    
    Set ws = ActiveSheet '対象ワークシート
        
        For i = 1 To 10  'セルA1~A10まで検索する
            '1文字目から検索して"1"が一個以上あるか検索
            If InStr(1, ws.Cells(i, 1), 1) <> 0 Then  '"1"が0個じゃない
                
                ws.Cells(i, 2) = "A" 'セルのB列にAと記入
            
            Else: End If  '"1"が0個なら何もしない
        Next i
        
End Sub