- 締切済み
Excelユーザーフォームでのデータ検索
初心者の質問で申し訳ございません。 ユーザーフォームを利用して検索ボタンを作ろうと考えています。 ユーザーフォームでテキストボックスを2個と コマンドボタン1個を作成し、 テキストボックス1に検索したい氏名を入力して コマンドボタンを押すと、 ワークシート(ワークシート名、データ)に作成されたデータのD列から 一致するものを検索し、 一致したデータのA列にある「番号」をテキストボックス2、 表示する。 というマクロが書けず困っています。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- zap35
- ベストアンサー率44% (1383/3079)
サンプルマクロです。 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関数で変換して検索するのがよいでしょう。
お礼
返事遅くなって大変申し訳ございません。 ちゃんと動くようになりました。 ありがとうございます。