VB6・VBA関数メモ:InStr関数

InStr関数についてメモしておきます。
文字列検索を行う際に使用します。


概要

InStr([start], string1, string2, [compare])
機能 対象文字列(string1)から検索文字列(string2)を先頭から検索
戻り値 最初に見つかった文字位置
見つからなかった場合は「0」


引数

引数名説明
start (compare省略時のみ省略可)
検索の開始位置
省略時は文字列の先頭から検索
string1 検索対象の文字列
string2 検索する文字列
compare (省略可)
比較モードの定数


引数:定数

引数:compare
定数名説明使用例出力
vbUseCompareOption-1Option Compare ステートメントの設定を使用InStr(1, "abcde", "cd", vbUseCompareOption)3
vbBinaryCompare0(規定値)
バイナリモード
※大文字と小文字、半角と全角、ひらがなとカタカナを区別する
InStr(1, "abcde", "cd", vbBinaryCompare)3
vbTextCompare1テキストモード
※大文字と小文字、半角と全角、ひらがなとカタカナを区別しない
InStr(1, "abcde", "cd", vbTextCompare)3
vbDatabaseCompare2(Accessのみ)
DBに格納されている設定に基づいて比較
InStr(1, "abcde", "cd", vbDatabaseCompare)3


使用例

説明記述例出力
1文字目から「cd」を検索 InStr(1, "abcde", "cd") 3
1文字目から「cd」を検索(位置省略) InStr("abcde", "cd") 3
6文字目から「cd」を検索 InStr(6, "abcde abcde", "cd") 9
大文字・小文字を区別して検索
(検索できない例)
InStr(1, "abcde", "CD", vbBinaryCompare) 0
ひらがな・半角カタカナを区別しないで検索 InStr(1, "あいうえお", "ウエ" ,vbTextCompare) 3


応用例

説明記述例出力
検索対象文字列から全ての検索文字列の位置を取得
Dim pos As Long

'検索対象文字列
Const TARGETSTR As String = "abcde abcde abcde"
'検索文字列
Const SEARCHSTR As String = "cd"

'検索位置初期化
pos = 0

'ループして検索
Do
    '検索
    pos = InStr(pos + 1, TARGETSTR, SEARCHSTR)
    
    '検索できた場合出力
    If pos > 0 Then
        '検索結果出力
        Debug.Print pos
    End If
Loop While pos > 0
3
9
15


コメント
コメントする








    
この記事のトラックバックURL
トラックバック