回答:
Instr関数を使用する
Dim pos As Integer
pos = InStr("find the comma, in the string", ",")
posで15を返します
見つからない場合は0を返します
Excelの数式でコンマを検索する必要がある場合は、=FIND(",";A1)
関数を使用できます。
Instr
大文字と小文字を区別しない文字列の位置を見つけるために使用したい場合は、Instrの3番目のパラメーターを使用し、それにconst vbTextCompare
(またはダイハードの場合は1)を指定します。
Dim posOf_A As Integer
posOf_A = InStr(1, "find the comma, in the string", "A", vbTextCompare)
値は14になります。
この場合、私がリンクした仕様に記載されているように、開始位置を指定する必要があることに注意してください。compareが指定されている場合は、start引数が必要です。
特別な単語を使用することもできますlike
:
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
同じタイプのことを行うInStrRev関数もありますが、テキストの終わりから始まりまで検索を開始します。
@reneの答えごとに...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
...それでも15をposに返しますが、「the」という単語のように、文字列に複数の検索文字列が含まれている場合は、次のようになります。
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... 6ではなく20をposに返します。
ルネの答えに基づいて、部分文字列が存在する場合はTRUE、存在しない場合はFALSEを返す関数を作成することもできます。
Public Function Contains(strBaseString As String, strSearchTerm As String) As Boolean
'Purpose: Returns TRUE if one string exists within another
On Error GoTo ErrorMessage
Contains = InStr(strBaseString, strSearchTerm)
Exit Function
ErrorMessage:
MsgBox "The database has generated an error. Please contact the database administrator, quoting the following error message: '" & Err.Description & "'", vbCritical, "Database Error"
End
End Function
INSTR
ために働きますか?