- ベストアンサー
エクセル・VBAでテキストボックスに入力された文字を
エクセル・VBAでテキストボックスに入力された文字を B列から検索し、結果をユーザーフォームのリストbox に表示したいのですがうまくいきません 検索は部分一致・大文字小文字無視で行いたいです よろしくお願いします
- みんなの回答 (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 とかでは?
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
ん? なるほど,そういう事がしたかった訳ですか。 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 とか。
補足
何度も回答いただきありがとう御座います うまく表示出来るようになりました 表示された検索結果をクリックすると、そのセルを アクティブにする事は出来ないのでしょうか?
- hallo-2007
- ベストアンサー率41% (888/2115)
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列をリストに追加 見たいな感じですか。
補足
部分的に一致していても、リストに追加するように出来ますか? 例えば、下記データが入力されていて、 A B C 1212 5568 4848 3535 8568 1234 4567 5577 4567 テキスト入力が「568」の時に、1・2列目が表示される 様に出来ないでしょうか? また、表示された1・2列目をクリックすると、そのセル をアクティブに出来ると良いのですが・・・
- keithin
- ベストアンサー率66% (5278/7941)
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 とか。
お礼
ありがとう御座いました お二方のおかげでうまく動いています 本当にありがとう御座いましたm<__>m