InstrB関数は文字列の中から指定した文字列を先頭から検索し、検索結果を先頭からのバイト数で返します。
※Instr関数の場合は文字位置を返します。
関数説明
InstrB関数の構文は以下のように記載します。※基本的にはInstr関数と同様です。
InStrB([ start, ] string1, string2 [, compare ])
引数の一覧は以下です。
引数 | 定数(値) | 説明 | 必須項目 |
start | ー | 検索開始位置 | 必須 |
string1 | ー | 検索対象となる文字列 | 必須 |
string2 | ー | string1内で検索する文字列 | 必須 |
compare | vbBinaryCompare | 大文字と小文字を区別する | |
vbTextCompare | 大文字と小文字を区別せず |
startがNullの場合は、エラーが発生します。
compareを指定した場合は、startも指定する必要があります。
戻り値の一覧
内容 | 戻り値 |
string1 が長さ「0」の文字列 | 0 |
string2 が長さ 0 の文字列(””) | start |
string2 が見つからない場合 | 0 |
string2 が string1 内で見つかった場合 | 見つかった文字列のバイト数 |
start の値が string1 の文字数を超えた場合 | 0 |
基本的にはInstrB関数結果が「0」が返ってこれば、エラーだと理解しておけば問題ありません。
どういった時に使う?
文字列の中で、文字のバイト位置を調べて使います。文字数でなく、Byte数で知りたい時に使用します。
仕様を理解しないとわかりづらいため、使用頻度は高くありません。
使い方サンプル
Public Sub Call_Sample_InstrB() Dim temp As String MsgBox InStr("前から検索", "検索") '4 →「検索」は4文字目 MsgBox InStrB("前から検索", "検索") '7 →「検索」は7バイト目 MsgBox InStrB("あいうえおう", "う") '5 →「う」は5バイト目 MsgBox InStrB(6, "あいうえおう", "う") '11→6バイト目以降の「う」は11バイト目 '11 - 6 = 5ではない。(InstrBは先頭からのバイト数を返す) End Sub
コメント