ある文字列の中から指定された文字列を検索するには、InStr関数/InStrRev関数を使います。
Instr関数とInstrRev関数の構文は同じではないので注意が必要です。(パラメータの順序)
文字列の先頭から検索する
先頭から検索する場合はInStr関数を使います。
実行プログラム
1 2 3 4 5 |
Sub Sample5_9_1() MsgBox CStr(InStr(Cells(1, 1).Value, "many")) & "文字目" End Sub |
- 開始位置は省略しているので、1文字目から検索されます。
文字列の先頭から開始位置を指定して検索する
ここでは、14文字目を開始位置として指定しています。
実行プログラム
1 2 3 4 5 |
Sub Sample5_9_2() MsgBox CStr(InStr(14, Cells(1, 1).Value, "many")) & "文字目" End Sub |
- 14文字目から後を検索対象としているため、グレーアウトされている部分に
検索文字列があったとしても無視されます。
文字列の最後から検索する
最後から検索する場合はInStrRev関数を使います。
実行プログラム
1 2 3 4 5 |
Sub Sample5_9_3() MsgBox CStr(InStrRev(Cells(1, 1).Value, "many")) & "文字目" End Sub |
- 開始位置は省略しているので、”最後の文字より前の部分”の文字から検索されます。
文字列の最後から開始位置を指定して検索する
ここでは、19文字目を開始位置として指定しています。
実行プログラム
1 2 3 4 5 |
Sub Sample5_9_4() MsgBox CStr(InStrRev(Cells(1, 1).Value, "many", 19)) & "文字目" End Sub |
- 19文字目より前の部分を検索対象としているため、グレーアウトされている部分に
検索文字列があったとしても無視されます。
文字の種類に関係なく検索する
大文字小文字、全角半角、カタカナ平仮名を区別せずに検索することも可能です。
実行プログラム
1 2 3 4 5 |
Sub Sample5_9_5() MsgBox CStr(InStr(1, Cells(1, 1).Value, "Abあイ", vbTextCompare)) & "文字目" End Sub |