Access VBAで対象が検索文字列の右から何文字目にあるか調べる関数

下記のようなURLの1番後ろのスラッシュの位置を確認したかったため簡単に使える関数を作りました。

対象が1文字でも2文字以上の複数文字でも対応可能です。

例にしたURL
https://drive.google.com/file/d/<file_id>/view?usp=sharing

目次

動作確認環境

  • Microsoft 365 Apps Access バージョン 2208

VBAコード

' 対象が検索文字列の右から何文字目にあるか
Function FIND_LEFT(検索文字列 As String, 対象 As String) As Long
    Dim tmp As String, strFind As String
    
    tmp = StrReverse(検索文字列)
    strFind = StrReverse(対象)
    
    FIND_LEFT = InStr(tmp, strFind) + Len(strFind) - 1
    
End Function

使い方

関数として使えます。

FIND_LEFT(検索文字列, 対象)

対象が1文字の場合

FIND_LEFT("https://drive.google.com/file/d/view?usp=sharing","/")

結果:19

対象が2文字以上の場合

FIND_LEFT("https://drive.google.com/file/d/view?usp=sharing","/file/d")

結果:25

使い方例文

【1文字指定】先頭から右側から検索した”対象”までの文字

[検索文字列] = https://drive.google.com/file/d/view?usp=sharing の場合

Mid([検索文字列],1,Len([検索文字列])-FIND_LEFT([検索文字列],"/"))

結果:https://drive.google.com/file/d

【1文字指定】右側から検索した”対象”から1番右までの文字

[検索文字列] = https://drive.google.com/file/d/view?usp=sharing の場合

right([検索文字列],FIND_LEFT([検索文字列],"/"))

結果:/view?usp=sharing

【複数文字指定】右側から検索した”対象”から1番右までの文字

[検索文字列] = https://drive.google.com/file/d/view?usp=sharing の場合

Mid([検索文字列],1,Len([検索文字列])-FIND_LEFT([検索文字列],"file"))

結果:https://drive.google.com/

【複数文字指定】右側から検索した”対象”から1番右までの文字

[検索文字列] = https://drive.google.com/file/d/view?usp=sharing の場合

right([検索文字列],FIND_LEFT([検索文字列],"file"))

結果:file/d/view?usp=sharing

\楽天ポイント5倍セール!/
楽天市場
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次