• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索結果の指定列をリストボックスに反映したい)

検索結果の指定列をリストボックスに反映したい

このQ&Aのポイント
  • ユーザーフォームにTextbox、検索ボタン、Listboxを配置し、Textboxに指定した大分類のレコードのA列とB列をListboxに反映させる方法について教えてください。
  • 検索ボタンを押すと、指定した大分類のレコードのA列とB列だけを抽出し、Listboxに表示する仕組みを作りたいです。
  • リストボックスに反映させる列の指定や検索ボタンの動作について教えてください。

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

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

元データはSheet1にあるとして private sub CommandButton1_Click()  dim r as long  if me.textbox1 = "" then exit sub  me.listbox1.clear  me.listbox1.columncount = 2  with worksheets("Sheet1")  for r = 2 To .range("E65536").end(xlUp).row   if cstr(.cells(r, "E").value) = me.textbox1.value then    me.listbox1.additem .cells(r, "A").value    me.listbox1.list(me.listbox1.listcount - 1, 1) = .cells(r, "B").value   end if  next r  end with end sub ぐらいで,逐一追加していくのが一番簡単かと思います。

mysame
質問者

お礼

keithinさん 教えて頂いたコードでやってみましたら、思う通り出来ました! 大変助かりました! どうもありがとうございました!

その他の回答 (1)

回答No.1

http://okwave.jp/qa/q8423348.html オートフィルターをフォーム(VBA)で表現 そのデータにオートフィルターをかけます。 そして、TextBoxに入れたデータで絞り込み 1行しか表示されなかったら、「検索データはありません。」 2行以上表示された場合は、表示されているデータを 抽出し、リストボックス?に反映。 という方法が良いかと思います! やり方は少し忘れてしまったので、検索かけてみますね。 質問者さんも少しずつ考えてみてください。 データ絞り込みまでは出来るかと思いますよ^^

mysame
質問者

お礼

satoron666さん、どうもありがとうございます! いろんなとこから検索をかけて、下記コードでやってみたところ、A列の商品コードとE列の大分類しかリストボックスに反映できなくて、どこがダメか分からなくて、困ってます。 Sub cmdIDSearch_Click() Dim daibunnrui As Range Dim c As String With Worksheets("商品CD").Columns(5) Set daibunnrui = .Find( _ what:=txtIDSearch.Value, _ LookIn:=xlValues, _ lookat:=xlPart, _ MatchByte:=False) If daibunnrui Is Nothing Then MsgBox "対象存在しません。", _ vbOKOnly + vbInformation, "検索" Else IDListBox.Clear c = daibunnrui.Address Do '検索にヒットしたセルの値を取得 With IDListBox .AddItem daibunnrui.Offset(, -4).Value .Column(1, .ListCount - 1) = daibunnrui.Value End With Set daibunnrui = .FindNext(daibunnrui) Loop Until daibunnrui.Address = c End If End With End Sub

関連するQ&A