アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者の質問で申し訳ございません。

ユーザーフォームを利用して検索ボタンを作ろうと考えています。

ユーザーフォームでテキストボックスを2個と
コマンドボタン1個を作成し、

テキストボックス1に検索したい氏名を入力して
コマンドボタンを押すと、
ワークシート(ワークシート名、データ)に作成されたデータのD列から
一致するものを検索し、
一致したデータのA列にある「番号」をテキストボックス2、
表示する。

というマクロが書けず困っています。

よろしくお願いします。

A 回答 (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関数で変換して検索するのがよいでしょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/20 15:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!