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というメソッドが用意されています。

122

このライターの人気ノート
Excel
0埋め(ゼロパディング)

指定した桁数になるまで0で埋める

Andnote公式

Excel
VBAでJSON文字列をパース

VBAでJSON文字列をパース(デシリアライズ)して、その要素にアクセスする方法。

Andnote公式

Excel
ウォーターフォール図の作成

ウォーターフォール図を使って、経営判断のスピードを上げる手法

Andnote公式