HOME > 中級編 > 指定した文字列の検索と抜き出し

指定した文字列を検索する

文字列中に指定した文字列が含まれているかを判断するには、「InStr関数」を使用します。
InStr関数は見つかった位置を返します。

●構文
InStr(Start,String1,String2,Compare)

引数「String1」に指定した文字列の中から引数「String2」に指定した文字列を検索します。
戻り値は、見つかった文字列の先頭位置を返します。
もし、指定した文字列が見つからなかった場合には「0」を返します。
引数「Start」は省略が可能で、指定した場合は指定位置から検索を開始します。
省略した場合は、文字列の先頭から検索されます。
引数「Compare」には、「vbBinaryCompare:バイナリモード」「vbTextCompare:テキストモード」を指定することができます。

●使用例
Sub sample()
If InStr("Excel VBA講座", "VBA") <> 0 Then
MsgBox "文字列「VBA」を含んでいます。"
Else
MsgBox "文字列「VBA」を含んでいません。"
End If
End Sub

このように、単純に文字列の存在判定に使うこともできます。


InStr関数を利用して文字列を抜き出す

InStr関数を利用して文字列を抜き出すこともできます。
しかし、InStr関数は文字列の位置を返すだけなので、他の関数と組み合わせる必要があります。
InStr関数の他に「Left関数」「Right関数」「Mid関数」を使用します。

◇Left関数
Left(String,Length)

引数「String」で指定した文字列の左側から引数「Length」で指定した文字数分抜き出す。

◇Right関数
Right(String,Length)

引数「String」で指定した文字列の右側から引数「Length」で指定した文字数分抜き出す。

◇Mid関数
Mid(String,Start,[Length])

引数「String」で指定した文字列の中から引数「Start」で指定した位置から引数「Length」で指定した文字数分抜き出す。
引数「Length」を省略すると、引数「Start」で指定した位置から右側を全て抜き出します。

●使用例
Sub sample()
Dim mail As String
mail = "excel-vba@vba.co.jp"
MsgBox "Left :" & Left(mail, InStr(mail, "@") - 1) & vbCrLf & _
"Right:" & Right(mail, Len(mail) - InStr(mail, "@")) & vbCrLf & _
"Mid :" & Mid(mail, InStr(mail, "@") + 1)
End Sub
メッセージウィンドウを表示する

●実行結果






ブックを開いて情報を取得する 文字列を末尾から検索する





inserted by FC2 system