F049 検索文字が文字列中で最初に表示された位置を右端からの文字数で調べる関数

2019-06-01
EXCEL自作関数

 FIND関数では文字列中の左端からの位置が計算ますが、この関数を使うことで、右端からの位置を計算できます。

VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法

登録されたら、シート上からユーザー関数「 FindR 」が使用できます。
使い方は 
ワークシート上で = FindR(検索文字,文字列,[開始位置]) の関数として使用することで、 特定の文字列が最初に表示された位置の右端からの文字数を抽出できます。

【例】
FindR(検索文字,文字列,[開始位置])
FindR(“秋田”,”秋田県秋田市新屋”,2)→ 5
開始位置2文字目から検索して文字列中で秋田が表示された位置を右端から
計算した位置なので5

Function FindR(S1 As String, S2 As String, Optional N As Long = 1)
’ 検索文字が文字列中で表示された位置を右からの文字数で調べる関数
’ FindR(検索文字,文字列,[開始位置])
’ FindR(“秋田”,”秋田県秋田市新屋”,2)→ 5
’ 開始位置2文字目から検索して文字列中で秋田が表示された位置を右端から
’ 計算した位置なので5
Dim i As Long
Dim C As Long
Dim CW As Long
Dim A As String
On Error GoTo EXITFUN
A = S2
A = Mid(A, N)

If InStr(A, S1) > 0 Then
 FindR = Len(A)- InStr(A, S1) + 1
Else
 GoTo EXITFUN
End If

Exit Function
EXITFUN:
FindR = CVErr(xlErrValue)
End Function

ここで紹介したコード使用による損害に対しては一切責任は負えません。