• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA コンボボックスの値から検索したい)

エクセルVBA コンボボックスで商品検索

このQ&Aのポイント
  • エクセル・VBAで商品検索をしようとしていますが、行き詰っています。
  • 商品マスタシートにJANコード・商品名・規格を入力し、ユーザーフォームで商品名を検索すると、該当する商品の情報がコンボボックス上に表示されます。
  • しかし、選択した商品のデータを出力する方法がわかりません。ご教授ください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>コンボボックスに格納されたデータは配列形式で、findメソッドを使って引っ張ってきているのですが、選択したデータからもともとの商品マスタのセルを割り出す操作があるのかどうかも分かりません。 有り体に言えば,そういう「リンク」はありません。 ので,配列データの中に「行番号」を3列目データとして併せて格納し,必要に応じて表示はしないようにしておくなどの手続きが簡単かなと思います。 行番号などのインデックスが格納されていれば,選択データの該当行データを出力するのは極めて容易ですね。

sousuke04
質問者

お礼

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

その他の回答 (1)

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.2

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

sousuke04
質問者

お礼

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

関連するQ&A