【エクセルVBA】文字の位置番号を取得する(InStr)

投稿者: | 2020年12月6日
excelアイコン

エクセルバージョン

マイクロソフト365

 

今回はVBAで文字列の中から、指定した文字の位置の番号が取得できるInstr関数について解説していきたいと思います。

それではいってみましょう!

 

InStr関数

概要

文字列から指定した文字を検索して、最初に見つかった位置番号のVariant(Long)を返します。

構文

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

[ ]は省略可能という意味です。

引数

InStr引数詳細必須/省略可
第1引数start文字列のスタート位置を指定。
・省略は先頭の文字から検索。
省略可
第2引数string1対象の文字列を指定。必須
第3引数string2検索したい文字を指定。必須
第4引数compare文字列比較の種類を指定。
省略可

 

サンプル

サンプル1

結果

ABCDEFGの文字列の中から、Cは先頭から数えると!

3です\(^^)/

Debug.Print

 

サンプル2

結果

sample@yahoo.co.jpの文字列の中から、@マークは先頭から数えると!

7です(^o^)o

 

その他のサンプル

 

第4引数

第4引数を下記のように設定することにより大文字と小文字や、ひらがなとカタカナを区別して位置番号を取得できます。

vbBinaryCompare

英語の大文字と小文字や、ひらがなとカタカナを区別して検索した際の位置番号。

 

vbTextCompare

英語の大文字と小文字や、ひらがなとカタカナを区別しないで検索した際の位置番号。

 

まとめ

応用でInstr関数を使用した記事があるので是非ご覧になってみてください。

ExcelVBAでメール@の後ろ(ドメイン)を抜出し取得する

以上です。