InstrReV関数は文字列の中から指定した文字列を末尾から検索し、最初に発見した文字位置を返します。
※Instr関数の場合は、末尾ではなく先頭から検索をします。
関数説明
InstrRev関数の構文は以下のように記載します。※基本的にはInstr関数と同様です。
InStrRev([ start, ] string1, string2 [, compare ])
引数の一覧は以下です。
引数 | 定数(値) | 説明 | 必須項目 |
start | ー | 検索開始位置 | 必須 |
string1 | ー | 検索対象となる文字列 | 必須 |
string2 | ー | string1内で検索する文字列 | 必須 |
compare | vbBinaryCompare | 大文字と小文字を区別する | |
vbTextCompare | 大文字と小文字を区別せず |
startがNullの場合は、エラーが発生します。
compareを指定した場合は、startも指定する必要があります。
どういった時に使う?
単独文字の位置を調べて使うということは少なく、
指定した文字の位置を判断して、その後さらに処理をする形が多いです。
またInstr関数と異なる部分は、先頭(左側)ではなく末尾(右側)から検索するだけです。
下記サンプルのように「ファイル自体のパス」と「ファイル名」に分ける場合に使用する事が多いと思います。
使い方サンプル
Public Sub Call_Sample_InstrRev() Dim temp As String '■ファイル名とパス名を分ける MsgBox InStr("C:\test\Sample.xlsx", "\") '左側から見て一番最初の「\」は3番目 MsgBox InStrRev("C:\test\Sample.xlsx", "\") '右側から見て一番最初の「\」は8番目 'Instr関数やInstrRev関数の単独では「検索結果の2番目の位置取得」はできません。 'InstrReV関数は、フォルダ名とファイル名を区分けする場合等、右側から検索する場合に有効な方法です。 '■仮にInstr関数だけで表すと、スタート位置を変更する必要がある Dim n As Long n = InStr("C:\test\Sample.xlsx", "\") '一つ目の「\」は3なので n+1=4番目から検索する MsgBox InStr(n + 1, "C:\test\Sample.xlsx", "\") '左側から見て二番目の「\」は8番目 End Sub
コメント