| 
    
     |  | ▼KIKAKU さん: こんにちは。
 出かけてしまうので問題があっても投稿は夜になってしまいますが、
 
 >ユーザーフォーム(Userform1)には
 
 >  Textbox1----検索行の指定用--1と指定すると1行目を
 >         検索対象とします
 
 >  Textbox2----検索値指定用
 
 >  Textbox3----検索結果表示用
 
 textbox4----検索の結果見つかったセルアドレス
 これを↑を追加して、
 >とすると、
 
 Userform1のモジュールの
 以下のプロシジャーを差し替えて下さい。
 (他は変更なしです)
 
 '=============================================================
 Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
 Dim 検索値 As String
 Dim col As Long
 With ActiveSheet
 If Val(TextBox2.Value) > Application.Max(.Range(検索セル範囲)) Then
 MsgBox "検索値指定エラー"
 Cancel = True
 Else
 検索値 = TextBox2.Text
 col = .Evaluate("IF(ISERROR(MATCH(" & _
 検索値 & "," & 検索セル範囲 & ",1)),0," & _
 "IF(ISERROR(MATCH(" & 検索値 & "," & 検索セル範囲 & ",0))," & _
 "MATCH(" & 検索値 & "," & 検索セル範囲 & ",1)," & _
 "MATCH(" & 検索値 & "," & 検索セル範囲 & ",1)-1))")
 
 TextBox4.Text = .Evaluate("=OFFSET(" & 検索開始セル & ",0," & col & ",1,1)").Address
 TextBox3.Text = .Evaluate("=OFFSET(" & 検索開始セル & ",0," & col & ",1,1)")
 End If
 End With
 
 End Sub
 
 アドレス表示にしましたが、本当に列だけ(BとかCとかのみ)の結果がほしいなら
 上記の結果をちょっと加工すれば得られます。
 確認してみて下さい。
 
 |  |