複数多数の文字列なか、特定文字列の所在位置を調べる時、InStr関数がよく使われます。きょうは、その基本的な使い方を見てみましょう。

 

InStr関数

 

構文
InStr([start,] string1,string2 [,compare])

日本語訳

InStr([検索開始位置,] 検索対象文字列,探す文字列 [,文字列比較モード])

 

 

Sub test()

    Dim String1 As String
    Dim String2 As String
    
  ’ 検索対象文字列
    String1 = "東京都西東京市"
    
  ’ 検索文字列
    String2 = "東京"
    MsgBox "検索文字列は:" & InStr(String1, String2) & "文字目にあります。"

 

End Sub

 

検索開始位置は指定しなかったため、一番左から検索することとなります。その結果は、1(文字目)となるはずです。

 

実行結果

 

 

Sub test2()

    Dim String1 As String
    Dim String2 As String
    
  ’ 検索対象文字列
    String1 = "東京都西東京市"
    
  ’ 検索文字列
    String2 = "東京"
    MsgBox "検索文字列は:" & InStr(2, String1, String2) & "文字目にあります。"

 

End Sub

 

実行結果

 
InStr関数は、大文字と小文字を区別するため、大文字TOKYOなか小文字yが見つからない場合、「0」を返して来ます。下記コードをVBEに貼り付けて実行してみてください。

Sub test3()
    MsgBox InStr("TOKYO", "y")       ''「0」を返します
End Sub

文字の位置を調べるInStr関数は、とても役に立つ関数です。実務上では、Mid関数と組み合わせて使う場合が非常に多いです。ぜひ使い方をマスターしましょう。

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

 

 

関連記事 

VBA 文字列の抽出Left関数とRight関数

 

VBA 文字列の抽出 Mid関数

VBA始める前の準備

VBAとは?