• ベストアンサー

エクセル・VBAでテキストボックスに入力された文字を

エクセル・VBAでテキストボックスに入力された文字を B列から検索し、結果をユーザーフォームのリストbox に表示したいのですがうまくいきません 検索は部分一致・大文字小文字無視で行いたいです よろしくお願いします

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

部分的に一致していても、リストに追加するように出来ますか? If Range("B" & i).Value = TextBox1.Value Then を If Range("B" & i).Value Like "*" & TextBox1.Value & "*" Then にするとか また、表示された1・2列目をクリックすると、そのセル をアクティブに出来ると良いのですが・・・ No1の方のコードをお借りします。 Private Sub ListBox1_Click() Range("C:C").Find(what:=ListBox1.Value, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False).Activate End Sub とかでは?

okjyou
質問者

お礼

ありがとう御座いました お二方のおかげでうまく動いています 本当にありがとう御座いましたm<__>m

その他の回答 (3)

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

ん? なるほど,そういう事がしたかった訳ですか。 private sub CommandButton1_Click()  dim c as range  dim f as string  set c = worksheets("Sheet1").range("B:B).find(what:=textbox1, lookin:=xlvalues, lookat:=xlpart, matchcase:=false)  if c is nothing then exit sub  f = c.address  do   listbox1.additem c.value   set c = worksheets("Sheet1").range("B:B).findnext(c)  loop until c.address = f end sub とか。

okjyou
質問者

補足

何度も回答いただきありがとう御座います うまく表示出来るようになりました 表示された検索結果をクリックすると、そのセルを アクティブにする事は出来ないのでしょうか?

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

Private Sub CommandButton1_Click() ListBox1.Clear For i = 2 To Range("B65536").End(xlUp).Row If Range("B" & i).Value = TextBox1.Value Then ListBox1.AddItem Range("C" & i).Value End If Next End Sub これではダメだったのでしょうか? B列の2行目から検索して textbox1と同じだったらC列をリストに追加 見たいな感じですか。

okjyou
質問者

補足

部分的に一致していても、リストに追加するように出来ますか? 例えば、下記データが入力されていて、 A     B     C 1212   5568   4848 3535   8568   1234 4567   5577   4567 テキスト入力が「568」の時に、1・2列目が表示される 様に出来ないでしょうか? また、表示された1・2列目をクリックすると、そのセル をアクティブに出来ると良いのですが・・・

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

private sub commandbutton1_click() if application.countif(worksheets("Sheet1").range("B:B"), "*" & textbox1 & "*") > 0 then listbox1.additem application.vlookup("*" & textbox1 & "*", worksheets("Sheet1").range("B:B"), 1, false) end if end sub とか。 dim res as range set res = worksheets("Sheet1").range("B:B").find(what:=textbox1, lookin:=xlvalues, lookat:=xlpart, matchcase:=false) if not res is nothing then listbox1.additme res.value end if とか。

関連するQ&A