F035 範囲内の文字の使用位置を相対参照で求める関数

2019-05-27
EXCEL自作関数

 指定した文字が 選択した範囲内のどの位置に使われているか調べる関数です。 選択した範囲内で指定した文字が使われている場所を選択範囲の一番左上からのR(行)C(列)を順番に表示していきます。

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

登録されたら、シート上からユーザー関数「 SearchWordR 」が使用できます。
使い方は 
ワークシート上で = SearchWordR (セル)の関数として使用できます、セル内の数式がそのまま表示されます。

【例】
SearchWordR(範囲, 検索する文字列)
セルF8 東京、 セルI8 東京 、 セルG10 東京都港区
=searchwordr(E6:J15,”東京”) ⇒ =R3C2,R3C5,R5C3
検索結果の位置は選択位置から見た相対位置、表示形式はR1C1形式
選択した範囲からの左端から見てR(行)、C(列)番目のセル

Function SearchWordR(R As Range, W As String) As String
’ 範囲内の文字の使用位置を相対参照で求める関数
’ 検索結果の位置は選択位置から見た相対位置、表示形式はR1C1形式
’ 選択した範囲からの左端から見てR(行)、C(列)番目のセル
’ SearchWordR(範囲, 検索する文字列)
On Error GoTo EXITFUN
Dim A As Variant
Dim i1 As Long
Dim i2 As Long
Dim N As Long
Dim P As String
A = R
For i1 = LBound(A, 1) To UBound(A, 1)
 For i2 = LBound(A, 2) To UBound(A, 2)
  If InStr(A(i1, i2), W) > 0 Then
    If P = “” Then
    P = “R” & i1 & “C” & i2
   Else
    P = P & “,” & “R” & i1 & “C” & i2
   End If
  End If
 Next
Next
 SearchWordR = P
Exit Function
EXITFUN:
SearchWordR = “”
End Function

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