Instr関数は文字列の中から指定した文字列を先頭から検索し、最初に発見した文字位置を返します。
※InstrRev関数の場合は、先頭ではなく末尾から検索をします。
関数説明
instr関数の構文は以下のように記載します。
InStr([ start, ] string1, string2 [, compare ])
引数の一覧は以下です。
引数 | 定数(値) | 説明 | 必須項目 |
start | ー | 検索開始位置 | 必須 |
string1 | ー | 検索対象となる文字列 | 必須 |
string2 | ー | string1内で検索する文字列 | 必須 |
compare | vbBinaryCompare | 大文字と小文字を区別する | |
vbTextCompare | 大文字と小文字を区別せず |
startがNullの場合は、エラーが発生します。
compareを指定した場合は、startも指定する必要があります。
どういった時に使う?
単独文字の位置を調べて使うということは少なく、
指定した文字の位置を判断して、その後さらに処理をする形が多いです。
(使い方例)
- 半角スペースや全角スペースの位置を判断し、苗字、名前で分けてセルに格納する
- IE操作で、HTML内のJavaScriptの解析をする為、必要な部分の位置を取得し、抜き出す
- ファイル名と拡張子を分け、ファイル名を変更して保存する
使い方サンプル
Public Sub Call_Sample_Instr() Dim temp As String '■ファイル名の拡張子の位置を判断 MsgBox InStr("C:\Sample.xlsx", ".") '「.」は9番目 '■半角空白スペースを除去 temp = "Hello World" MsgBox InStr(temp, "World") 'Worldの開始位置を返す「7番目」 '■大文字小文字の区別結果 temp = "Hello World" MsgBox InStr(temp, "WORLD") 'デフォルトは0を返す MsgBox InStr(1, temp, "WORLD", vbTextCompare) 'テキストモードだと大文字小文字は区別しない End Sub
コメント