指定した文字列を検索する
文字列中に指定した文字列が含まれているかを判断するには、「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 |
---|
●実行結果
ブックを開いて情報を取得する | 文字列を末尾から検索する |
---|