2011年12月11日日曜日

[ExcelVBA] InStrRev関数


■構文
InstrRev(stringcheck, stringmatch[, start[, compare]])

■説明
文字列の後方から検索し最初に一致した文字位置(先頭基準)を返す
第一引数:検索対象の文字列を指定。
第二引数:検索対象文字列内から探し出す文字列を指定。
第三引数:(省略可能)検索の開始位置を示す値を指定。省略時、-1が使用され、最後の文字から検索します
第四引数:(省略可能)文字列比較の比較モードを指定。省略時、Option Compareステートメントの設定にしたがいます。
定数説明
vbUseCompareOption-1Option Compare ステートメントの設定を使用して比較を行います。
vbBinaryCompare0バイナリ モードの比較を行います。
vbTextCompare1テキスト モードの比較を行います。

■サンプルコード
Option Explicit

Sub SampleCode()
    '一番最初の文字にヒットすると1を返します。
    Debug.Print InStrRev("Visual Basic", "V") '1
        
    'ヒットしない場合は0を返す
    Debug.Print InStrRev("Visual Basic", "X") '0
    
    '検索開始位置を指定
    Debug.Print InStrRev("Visual Basic", "i")    '11
    Debug.Print InStrRev("Visual Basic", "i", 3) '2
      
    '文字列比較、デフォルト(バイナリモード)、テキストモードの比較
    '大文字/小文字
    Debug.Print InStrRev("Aa", "a", 1)                '0
    Debug.Print InStrRev("Aa", "a", 1, vbTextCompare) '1

    '全角/半角
    Debug.Print InStrRev("AA", "A", 1)                '0
    Debug.Print InStrRev("AA", "A", 1, vbTextCompare) '1
    
    'ひらがな/カタカナ
    Debug.Print InStrRev("あア", "ア", 1)                '0
    Debug.Print InStrRev("あア", "ア", 1, vbTextCompare) '1

End Sub

0 件のコメント: