Excel

文字列の中で別の文字列が現れる位置を取得する VBAで文字列の中で別の文字列が現れる位置を取得する方法です


InStr関数を利用すると、ある文字列の中で別の文字列が最初に現れる位置を取得することができます。

例えば、次のような処理を行った場合、posには4という数字が入ります。(先頭の文字が0番目ではなく1番目となることに注意してください。)

Dim str: str = "Apple"
Dim target: target = "l"
Dim pos: pos = InStr(str, target)

最後に現れる位置を取得するための関数については提供されていませんが、検索する文字が1文字の場合は、裏返した文字列に対してInStr関数を利用することで実現できます。

次の例では、lastPosには、後ろ側のiの位置である8が代入されます。

Dim str: str = "University"
Dim target: target = "i"
Dim lastPos: lastPos = Len(str) - InStr(StrReverse(str), target) + 1

ちなみにVB.NETではLastIndexOfというメソッドが用意されています。

9


一覧に戻る