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

TextBoxに入力した内容をListBox内のデータから部分一致での検索をしたいです。
UserForm1にListBox1があります。ListBox1には、1列目が「顧客ID」、2列目に「顧客名」、3列目に「顧客名ふりかな」が表示されてます。
TextBox1とTextBox2がありTextBox1は,ID検索、TextBox2は顧客名検索とし、ID検索用ボタン(CommandButton1)、顧客検索用ボタン(CommandButton2)をおいてます。
TextBox2で3列目の「顧客名ふりかな」から部分一致での検索をしたいのですが、部分一致の仕方がわかりません。

現在のコードです。
完全一致だと検索は出来るようにはなってます。

Private Sub CommandButton2_Click()
Dim i As Long
For i = 0 To ListBox1.ListCount - 1
If ListBox1.List(i, 2) = TextBox2.Text Then
ListBox1.ListIndex = i
Exit Sub
End If
Next i
MsgBox "見つかりませんでした"
End Sub

どうぞ宜しくお願いします。

「エクセルVBA テキストボックス検索」の質問画像

A 回答 (1件)

部分一致であれば、


If ListBox1.List(i, 2) = TextBox2.Text Then

if Instr(ListBox1.List(i, 2),TextBox2.Text) Then
に変えればOKです。
但し、TextBox2.Textになにも入力されていない場合も、部分一致が成立しますので、
そのケースは予め除く必要があります。
このプロシージャの先頭に
if TextBox2.Text="" Then
msgbox("名称を入力してください")
Exit Sub
End If
をいれておいてください・
    • good
    • 3
この回答へのお礼

すんなりとできました。
なぜかInstrでもうまくできず困ってました。
有難う御座いました!

お礼日時:2016/11/07 12:06

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A