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

当ページのリンクには広告が含まれています。

URLの1番後ろのスラッシュの位置を確認したい。

右から何文字目にあるかを知りたい!

そんな痒い所に手が届く簡単に使える関数の紹介です。

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

例)
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","/")

結果:17

対象が2文字以上の場合

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

結果:24

使い方例文

【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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次