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

エクセル・VBAで商品検索をしようとしているのですが行き詰ってしまい、皆様のお知恵を拝借できればと思い質問させていただきます。

・現状
1.商品マスタ シートにJANコード・商品名・規格その他を入力しています。
2.ユーザーフォームを使い、商品名(一部分)を入力・検索したら、その商品の商品名・規格がコンボボックス上に表示される(2列分の情報を出力しています)

3.当てはまる商品を選択し、コマンドボタンを押したら、その商品のJANコードや商品名・規格・価格などが出力されるようにしたい


現在2.まではなんとか作成したのですが、3.の操作をどうすれば良いかわからず悩んでおります。
コンボボックスに格納されたデータは配列形式で、findメソッドを使って引っ張ってきているのですが、選択したデータからもともとの商品マスタのセルを割り出す操作があるのかどうかも分かりません。

独学でやっているので、基礎の基礎もわかっていないとは思いますが、どうかご教授ください。


(例)
商品名検索をした際には、コンボボックスに

    チロルチョコ    バナナ味20円
    チロルチョコ    いちご味21円
    チロルチョコ    マンゴー味21円

のように表示されます。その中でチロルチョコ イチゴ味を選択した後に、そのチロルチョコ いちご味のデータを出力したいのです。

A 回答 (2件)

>コンボボックスに格納されたデータは配列形式で、findメソッドを使って引っ張ってきているのですが、選択したデータからもともとの商品マスタのセルを割り出す操作があるのかどうかも分かりません。



有り体に言えば,そういう「リンク」はありません。
ので,配列データの中に「行番号」を3列目データとして併せて格納し,必要に応じて表示はしないようにしておくなどの手続きが簡単かなと思います。

行番号などのインデックスが格納されていれば,選択データの該当行データを出力するのは極めて容易ですね。
    • good
    • 1
この回答へのお礼

ありがとうございます。
的確なコメントをいただき、今後の指針まで教えていただけたので納得して作成できました。
行番号を配列に入れて非表示にし、後程そのデータを使い必要なデータを引っ張り出してこれました。
本当にありがとうございました!

お礼日時:2012/04/08 15:03

1番さんと回答がかぶりますが・・・。


確認ですが、1から2までの動作は
findをループで使って配列に放り込み、それをコンボボックスに表示で間違いないですか?
基本findはアドレスを取ってくるので、その行数もついでに配列に放り込んでみてはどうでしょう。
要素数1個追加で半分解決。
ComboBox1.ListIndexでリストの何番目が指定されたかわかるから(先頭は0)、
配列とつき合わせてアドレス取得、それから必要とするデータをとってくればよいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。行数を配列に組み込むという方法は目からうろこでした。
何とかクリアできました!

お礼日時:2012/04/08 14:57

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