• ベストアンサー

エクセルVBA(?)を使って

エクセルで特定の商品コードをセルに入力すると その商品コードに対する商品名称(日本語)を 表示させたいのですが、具体的にどのような コーディングにすればいいのでしょうか?? 入力シートから 商品コード・商品名称が入力してある シートを参照させて商品名称を取得したいのです。 可能ならば 該当する商品コードに対する名称が 取得できなかった場合、何かのメッセージボックスを 表示させたいのですが・・・。 エクセルのバージョンは97です。 OSはWin98です。 商品コードに対する商品名は1対1で 商品コード・商品名称の入っているシートと 商品コードを入力するシートとは 同一ブックです。 100件以上のコードに対して紙ベースで 商品名称を捜すのに 泣いています(≧_≦) 助けて下さい!!!

  • hema
  • お礼率95% (41/43)

質問者が選んだベストアンサー

  • ベストアンサー
  • mikerann
  • ベストアンサー率48% (14/29)
回答No.1

こんにちは。 えーと,VBAではなく,関数を使った方法なんですが・・・。 VLOOKUP関数を使った方法です。 例えば,A列に商品コード,B列に名称が入っていたとします。 そして,C1のセルがコード入力欄,D1のセルが商品名称(アンサー)を出したいセルという設定で・・・。 この場合,D1のセルに =vlookup(C1,A1:B5,2,TRUE) と入力するとアンサーとして商品名が出てくるはずです。 関数の簡単な説明として C1は検索したい値,A1:B5は検索したい情報テーブル,2はアンサーとして出したいデータテーブルの列(左端から数えて) TRUEは同一の値を検索するという意味です。 関数ウイザード(fx)を起動してやってみると,簡単に出来ます。 ちょっと説明がうまく出来なくてすいません。理解して頂けたでしょうか・・・。

hema
質問者

お礼

ありがとうございます。 詳しく引数の説明とかありましたので すごく助かりました!! もう めちゃくちゃ活用できました!! マスタ作りには多少時間がかかりましたが あの、アナログな作業から解放されました!! >>多少 重くなりましたがブックリンクとかで >>ガンガンに使いまくってます☆ >>次の月次〆が楽しみです(*^-^*) >>問合せ対応もラクチンです☆

その他の回答 (3)

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.4

こんにちは  以下のページがご参考になるのでは? 指定したコードに対する製品名や金額を求める (VLOOKUP関数) http://support.microsoft.com/intl/japan/support/kblight/T002/3/00.htm

参考URL:
http://support.microsoft.com/intl/japan/support/kblight/T002/3/00.htm
hema
質問者

お礼

ありがとうございます MS社のホームページに解説ページが あったとは・・・。知らなかったです(^^; これから 少しは自分で関数とか勉強したいと 思います☆

  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.3

あとで気がつきました。 よく読めば違うところは1個じゃないですね。 私のPCのヘルプによればvlookup関数の4つ目の引数は、falseが正解です。 多分イージーミスだと思いますが。 お仕事に使われるのだと思いますので、よく関数のヘルプを読んで使ってくださいね。>hemaさん

  • Raistlin
  • ベストアンサー率63% (65/102)
回答No.2

あら、出遅れたようで。 まあ、1個だけ違うところ(該当商品が無い時のメッセージ)があるので紹介させてください。 +++++++++++++++++++++ 下のようにA6からB11に一覧表があるとき。    A   B ----------------------- 6 | 104 カッターナイフ 7 | 105 はさみ 8 | 106 のり 9 | 107 ホッチキス 10| 108 定規 11| 109 修正液 セルA3をコード入力欄、セルB3を商品名表示欄に。 また、セルB4を予備の計算欄に使います。 セルB3に =IF(ISNA(B4),"該当する商品が見つかりません",B4) セルB4 =VLOOKUP(A3,$A$6:$B$11,2,FALSE) の式を入力します。

hema
質問者

お礼

ありがとうございます。 もうFAXの紙ベースで「B」と「8」の 判断がつかず両方で商品名を探し出す 無駄な時間がなくなって本当に嬉しいです!! >>会社で先輩と感動しながら >>活用しまくってます☆ >>友達にもメールでお知らせしまくりました(笑)

関連するQ&A

  • excel VBAを使って、データを自動的に表示させたい!

    excelのVBA・マクロの書き方について教えてください!! たとえば、商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名と数量を入力するだけで、商品データを参照して、産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 「商品名」だけを入力して、表示させることはできたのですが、 商品名が同じで、数量が違うものがあると、片方のものしか表示されません。 A・B列に「商品名」・「数量」を入力して、自動でデータが表示される方法はありますか??

  • エクセルVBAの質問です。

    エクセルVBAの質問です。 一つ一つコードを試しては動きを確認するという作業を始めたばかりの初心者です。 VBAで他のブックからデータを取得するにあたっては、その参照先のブックの行列は絶対いじってはならないものだと理解しています。でも、行列が変わってしまう可能性があるため、参照先のブックの値を、行列ではなく、たとえば「“4月”かつ“売上”の交わるセルから数値を取得せよ」のように、参照先のブック内の文字列を読みにいって、そこから取得するような考え方は成り立つでしょうか。もし成り立つ場合は、どのように組めるものなのか、考え方を教えていただけませんでしょうか。 何卒よろしくおねがいいたします。

  • excel VBAを使って、データを自動的に表示させるには!?

    excelのVBA・マクロの書き方について教えてください!! 商品データ(商品名、数量、産地、担当者、商品コード)を入力したシートがあります。 別のシートに、商品名を入力するだけで、商品データを参照して、数量・産地・担当者・商品コードが自動で入力されるマクロを作成したいです。 本を見ながらやっていたのですが、なかなか上手くいきません! (商品名を入力する)セルをあらかじめ指定し、そこに商品名を入力して表示させる方法はあったのですが・・・ セルを指定せずに、A列ならどこに商品名を入力しても、自動でデータが表示される方法はありますか??

  • 参照の制限について

    私は 通常エクセルで別シートを参照する場合,参照したいセルで = と入力した後に該当シートの該当セル(A1)をクリックすれば =シート名!A1 等と表示されますが, シートによってはクリック出来ないシートが存在します。 クリック出来ないので,何も表示されませんが,手入力でコーディングすれば値の参照が可能となります。 原因と対処を教えてください。

  • エクセル複数シートの検索とVBA

    エクセルVBA初心者です。 今エクセル2007で、下画像の上段・中段のような売上げシートを ブックの中に複数シート作成しています。 シートは売上げのあった日毎に作成しており、シート名は「1.1」のように日付にしています。 売上日はシートの左上のA1セルに入力しています。 ここでしたい処理なのですが、画像の下段のように検索用の シートを1枚作り、そこに売上内容を入力し、マクロコードを実行すれま、自動的に 該当するデータ(売上内容から支払い方法まで)を表示するコードはあるのでしょうか。 今は手作業で、シートを目視で確認しているので大変になってきました。 よろしくお願いします。

  • エクセル VBA

    .Formulaにてセルに他ブック参照した数式を入力しているのですが、参照シート名が半角数字又は全角数字の場合があり、「シートの選択」ウインドウが表示されてしまいます。 数式はIFを使用してシート名が全角・半角どちらの場合でも問題ない数式を入力してるので、「シートの選択」をしなくても問題ありません。 DisplayAlertsをFalseにしても表示されてしまいます。 「シートの選択」ウィンドウを表示させない、又はOKまたはキャンセルをVBAで押すことはできないでしょうか?

  • エクセル/表引きの方法を教えて下さい

    エクセルで、セルにコード番号を入れたときに、その右横のセルに、別のシートに作ってあるコード一覧表を参照して、入力したコード番号の商品名を自動的に入れるにはどうしたらいいのでしょうか。 コードの一覧のシートに 1 A商品 2 B商品 … と作ってあって、 別のシートでセルに「2」 ←を入れると 2 B商品(←自動的に表示される) ↑ 入力 のようにしたいのですが。 いろいろ調べたのですが分からないのでよろしくお願いします。

  • エクセルVBA 初期処理

    エクセルVBA初心者の中年オヤジです。 あるエクセルブックを開く毎、不必要なシートを削除するための方法を、出来るだけ具体的に教えて下さい。 あるエクセルブックに「検索条件入力・名称マスタ・検索結果」の固定3シートがあります。 検索条件を入力し検索ボタンを押下する事で、別シートから該当データを抽出するのですが、検索条件を変更し検索ボタンを押下する毎に「結果シート」が増えて行く仕様としています。 抽出部分や結果シートのコピー部分の作成、及びクリアボタンを押下した場合の「結果」シート削除のプログラミングは完了しましたが、このエクセルブックを開いた時に、初期処理として全「結果シート」を削除するにはどの様にしたら良いのか教えて下さい。 ブック利用者が「結果シート」を残したまま保存した場合を考慮し、初期処理としてこの全「結果シート」を削除したいのです。 宜しくお願い致します。

  • エクセル vbaでの相談です

    エクセルでの質問です。 販売管理表を作りたいと思います。 sheet1を商品マスター表とし、下記の見出しがあって A1 JANコード(上一桁4からの番号で13桁) B1 商品コード (14桁) C1 商品名 D1 価格 以下A2行以降、A1行の見出しを元に商品詳細があるとします。 sheet2の下記のA1行を見出しとし、A2行から販売実績をユーザーフォームを使って入力していきたいと思います。 A1 JANコード B1 商品コード C1 商品名 D1 価格 E1 販売番号 フォームを作成し、入力窓に JAN、商品コードのいずれかを入力すると、他の入力窓にsheet1の商品マスター表から該当する商品名、価格を自動入力し登録ボタンを押すと、sheet2の該当セルに反映されるということはできますでしょうか? そして異なる商品のまとめ買いの件数も知りたいので、フォーム上で複数アイテム登録できるようにし、販売番号で件数を管理したいのですが、そちらも可能でしょうか? 販売番号も自動で通し番号が入るようにしたいです。わかりにくい文章で申し訳ありません。ご教授の程、よろしくお願い致します。

  • Access-VBAでExcelファイルを作成する。

    こんにちわお世話になります。 「Excelにエクスポート」ボタンをクリックすると、Inputboxか何かが表示されて、Pathやファイル名やシート名を入力し、「実行」ボタンを押すと、新規にExcelのBookを、そのPath、ファイル名、シート名で作成する。その後、そのシートにデータを書き込むという作業をしたいのです。 AccessのデータをExcelの任意のシートを開いて書き込むという部分のVBAコードはわかりますので、新規Book作成部分のコードがわかるかたお願いします。 Office97を使用しています。

専門家に質問してみよう