文字列の中に "、"(コンマ)が含まれているかどうかを調べたいです。 char-by-charを読む以外に他の方法はありますか?
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の値が表示されます。
start引数が指定されて比較する場合に必要です。私はリンク仕様に記載されているようにあなたは、この場合の開始位置を指定する必要があることに注意してください。
特別な単語like
を使うこともできます。
Public Sub Search()
If "My Big String with, in the middle" Like "*,*" Then
Debug.Print ("Found ','")
End If
End Sub
同じタイプのことをする InStrRev 関数もありますが、テキストの終わりから始めまで検索を始めます。
Per @ reneの答え...
Dim pos As Integer
pos = InStrRev("find the comma, in the string", ",")
...はまだposに15を返しますが、文字列が単語 "the"のように複数の検索文字列を持つ場合は、次のようになります。
Dim pos As Integer
pos = InStrRev("find the comma, in the string", "the")
... 6の代わりに20をposに返します。
Reneの答えを踏まえて、部分文字列が存在する場合は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