Public Function FNC_rowpos(ByVal serch_string As String, ByVal serch_str_row As String, ByVal serch_max_row As String, ByVal serch_col As String) As Single
'-------------------------------------------------------------------------------
'   検索関数
'   https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.find#return-value
'
'   受取　検索文字列、検索開始行、検索終了行
'　 戻値  行位置　（ヒットしない時は0)
'
'   ※検索シートは Sheet1 なので変更してください
'
'-------------------------------------------------------------------------------
    Dim SearchRange As Range
    Dim ResultRange As Range
  
    '検索するデータ範囲設定 ※Sheet1 なので変更してください
    Set SearchRange = Sheet1.Range(serch_col & serch_str_row & ":" & serch_col & serch_max_row)

    '検索条件 完全一致の時
'    Set ResultRange = SearchRange.Find(serch_string , LookAt:=xlWhole)
    '検索条件 部分一致の時
    Set ResultRange = SearchRange.Find(serch_string, LookAt:=xlPart)
    
    '//////   検索
    If ResultRange Is Nothing Then
        '検索結果が無かった時エラーになる「オブジェクト変数または With ブロック変数が設定されていません」
        'ResultRange.Activateで回避できるとあったが、できなかったので On Errorで逃げる
        On Error Resume Next
        '//////   ヒットしない時の処理を書く
        FNC_rowpos = 0
    Else
         '//////   ヒットした時は「行位置」を返す
        FNC_rowpos = ResultRange.Row
    End If
End Function