【ExcelVBA】特定の文字の位置を後ろから取得する方法

こんなあなたにおすすめ

・Excel VBA 特定の文字の位置を後ろから取得したい

文字列を扱う際、特定の文字の位置を後ろから取得したいということがあります。

InStr関数やInStrRev関数では、前から検索するか、後ろから検索するかの違いのみで、取得する位置は、前が基準となってしまいます。

そこで今回は、後ろ基準で位置を取得する方法について解説します。

InStr関数、InStrRev関数については、以下をご参照ください。

特定の文字の位置を後ろから取得する方法

今回は、以下の2通りの方法についてご紹介します。

  • 「StrReverse」で文字列を逆に並び替える → 「InStr関数」で文字位置を検索
  • (「Len関数」ー「InStr関数」)ー1

実際にコードを見ていきましょう。

「StrReverse関数」→「InStr関数」

Sub test1()

    Dim l As String
    l = "123"
    
    Dim rl As String
    rl = StrReverse(l)    '321
    
    Debug.Print InStr(rl, "1")   '3

End Sub

「Len関数」ー「InStr関数」-1

Sub test2()

    Dim l As String
    l = "123"
    
    Dim tmp1, tmp2 As Long
    tmp1 = InStr(l, "1")    '1
    tmp2 = Len(l)   '3
    
    Debug.Print (tmp2 - tmp1) + 1   '3


End Sub

まとめ

ここまで、特定の文字の位置を後ろから取得する方法について解説しました。

文字の位置を後ろから取得して使いたいということは結構ありますので、ぜひ使ってみてください。

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です