構文
構文は以下の通りです。
解説
InStr関数は、ある文字列の中で特定の部分を探すための関数です。開始位置(省略可能)は、文字列の中で検索を始める位置となります。文字列1は検索対象の文字列となり、文字列2は探す文字列となります。比較方法(省略可能)は、大文字と小文字を区別するかどうかを指定します。例えば、「文字列1」の中で「文字列2」が最初に見つかる位置を教えてくれます。結果は見つかった位置の番号で返され、見つからなかった場合は0が返されます。
【比較方法】
定数 | 値 | 内容 |
vbBinaryCompare | 0 | 大文字と小文字を区別して比較します |
vbTextCompare | 1 | 大文字と小文字を区別せずに比較します |
プログラミング例
具体的なプログラミング例を紹介します。
(例1)"こんにちは"の中で"にち"を探す(大文字小文字区別なし)
Dim 結果 As Integer
結果 = InStr(1, "こんにちは", "にち", vbTextCompare)
MsgBox "「にち」が見つかった位置: " & 結果
End Sub
上記のプログラムは、InStr(1, "こんにちは", "にち", vbTextCompare)は、「こんにちは」の1文字目から「にち」を探します。大文字小文字を区別せずに検索するため、vbTextCompareを使っています。MsgBoxで結果の位置を表示し、「にち」が最初に見つかった場所の番号を教えてくれます。もし「にち」が存在しなければ、結果は0となります。
(例2)"HELLO"の中で"LO"を探す(大文字小文字区別あり)
Dim 結果 As Integer
結果 = InStr(1, "HELLO", "lo", vbBinaryCompare)
MsgBox "「lo」が見つかった位置: " & 結果
End Sub
上記のプログラムは、"HELLO"の中に"lo"は存在しないため、結果は0になります。大文字小文字を区別したいときにはvbBinaryCompareを使うのがポイントです。
まとめ
InStr関数は、指定された文字列の中で特定の部分を検索する便利な関数です。開始位置や大文字小文字の区別も指定できるため、さまざまな場面で活用できます。検索が成功した場合は位置を、失敗した場合は0を返すため、条件分岐と組み合わせて使うことも可能です。