入力した値でVLOOKUP検索した結果を別のテキストボックスに表示するには?
Question 51.8 Previous Next
詳細は こちら 500連発第2弾244番について質問します。
VLOOKUP関数を使って、フォームのテキストボックス1にデータベースシートのレコードが入力されたら、テキストボックス2にデータベースシートの3列目を表示させたいのですが、うまくいきません。
具体的に説明しますと、「データベースシート」とは得意先のデータが入力されたシートで、A列には得意先コード、B列にはフリガナ、C列には得意先名・・・です。
このシートのデータを使って、日報シートと言うシートのH列に得意先コード、I列に得意先名、J列に活動内容・・・を入力する為のフォームのテキストボックス1に「得意先コード」を入力し、テキストボックス2に「得意先名」を表示することができればと思っております。
教えていただけないでしょうか、お願いいたします。
Answer   Copyright (C) 2002.2.5 永井善王
500連発第2弾244番のワークシート 第2弾244番は「VLOOKUPで左端列から検索する」と題する作品で、VLOOKUP関数の使い方のサンプルです。

その機能は、給料計算において税法で規定された「別表1」つまり、右図の表をVLOOKUP関数で検索して給与所得控除額を求めます。

サンプルブックの[実行]ボタンをクリックすると、下図のユーザーフォームが表示されます。
500連発第2弾244番のユーザーフォーム
操作方法としては、配偶者の有無をオプションボタンで指示し、扶養人数をテキストボックス1に、社会保険控除後の給与をテキストボックス2に入力してから、[計算する]ボタンをクリックします。

すると、マクロの中のVLOOKUP関数などが機能して、給与所得控除額を求めて返してくれます。

回答に入ります。
ご質問内容は 244番のサンプルそのものへの質問ではないかと思いますが、VLOOKUP関数を使えば問題解決できるかも、と思われたとしたら、それは当たっています。 とりあえず、あなたが作りたいマクロを整理してみましょう。

マクロの流れ
1. ユーザーフォームを表示する
2. テキストボックス1に得意先コードが入力されたら、VLOOKUP関数でデータベースシートを検索して得意先名を取得する
3. 取得した得意先名をテキストボックス2に表示する
4. 活動内容等が入力される
5. 得意先コードと得意先名、入力された活動内容等を日報シートのH、I、J列等のセルにセットする

知りたいところは、この中の 2、3のような気がしますので、それを知る方法を説明します。

VLOOKUP関数についての参考ページ
ワークシート関数である VLOOKUP をVBAの中で使うためには、ワークシートのセルで VLOOKUP関数を使う知識が必要です。 もしも、その知識がないのであれば、下記の方法で参考資料を取り出しマスターしてください。
1. この「すぐに役立つエクセルVBAマクロ集」の「Search」のページを開く
school 2. 表示されたテキストボックスに「VLOOKUP」と入力して [検索]ボタンをクリック
3. 検索結果として該当するページのタイトルが表示されたら、ニーズに近いものを選んでクリック

テキストボックス1に入力された値をVBAの中のVLOOKUP関数で使う方法は、 500連発第2弾244番のサンプルブックの解説シートにあるとおりですから、よく読んで理解してください。
そして、
控除後給与 = TextBox2.Text となっているのを、得意先コード = TextBox1.Text のように変更すれば良いでしょう。

また、VLOOKUPで検索できた得意先名をテキストボックス2に表示する方法を知りたい場合は、上記と同様に 「Search」のページで、テキストボックスと入力して検索し、参考にしてください。
ご健闘を祈ります。

 

Excel VBA Macro