• 締切済み

Excelユーザーフォームでのデータ検索

初心者の質問で申し訳ございません。 ユーザーフォームを利用して検索ボタンを作ろうと考えています。 ユーザーフォームでテキストボックスを2個と コマンドボタン1個を作成し、 テキストボックス1に検索したい氏名を入力して コマンドボタンを押すと、 ワークシート(ワークシート名、データ)に作成されたデータのD列から 一致するものを検索し、 一致したデータのA列にある「番号」をテキストボックス2、 表示する。 というマクロが書けず困っています。 よろしくお願いします。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

サンプルマクロです。 Private Sub CommandButton1_Click() Dim res  If TextBox1.Text <> "" Then   res = Application.Match(TextBox1.Text, Sheets("データ").Columns(4), 0)   If IsNumeric(res) Then    TextBox2.Text = Sheets("データ").Cells(res, "A").Value   Else    TextBox2.Text = "Not Found"   End If  Else   TextBox2.Text = ""  End If End Sub でもこれで実用に耐えるか疑問です。本当はもっと色々考えなくてはなりません。 1)検索するD列の値が数値の場合  TextBoxで取得する値は「文字列」です。シートのD列が「数値」なら見かけが同じでも絶対にMatchしません。TextBoxの文字列をVAL関数で数値に変換してから検索しなければなりません 2)入力された文字が「全角」「半角」違いの場合  入力者は意識せず「全角」「半角」を混在して入力することがあります。D列には「abc(半角)」と入力してあるのにTextBox1に「abc(全角)」で入力しても、これまたMatchしません。D列が半角/全角のどちらかに統一されているなら、Strconv関数で変換して検索するのがよいでしょう。

hinasehinae
質問者

お礼

返事遅くなって大変申し訳ございません。 ちゃんと動くようになりました。 ありがとうございます。

関連するQ&A