Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'押されたキーが、Enterキー以外は終了
If KeyCode <> vbKeyReturn Then Exit Sub
'テキスト部分が選択されている場合
If ComboBox1.ListIndex = -1 Then
ComboBox1.Visible = False 'コンボボックスを非表示
ComboBox1.Visible = True 'コンボボックスを表示
ComboBox1.List = Array() 'コンボボックスのリストをクリア'値を部分一致で抽出
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Sheets("DB").Cells(i, "A"), ComboBox1.Text) > 0 Then
'コンボボックスのリストに追加
ComboBox1.AddItem Sheets("DB").Cells(i, "A")
End If
Next
End If
KeyCode = 0 'コンボボックスをフォーカス
ComboBox1.DropDown 'リストを表示
End Sub
コンボボックスを使って、条件を絞り込むことができます。
条件を絞り込む
F5キーで、ユーザーフォームを表示します。
コンボボックスに値を入力して、Enterを押します。
値を絞り込むことができます。
絞りこんだ値から、検索値を選択することができます。
絞りこんだ値から選択できる
絞りこんだ値から、検索値を選択することができました。
コンボボックスでデータを検索する
コンボボックスのリストを選択して、データを検索するVBAコードです。
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'押されたキーが、Enterキー以外は終了
If KeyCode <> vbKeyReturn Then Exit Sub
'テキスト部分が選択されている場合
If ComboBox1.ListIndex = -1 Then
ComboBox1.Visible = False 'コンボボックスを非表示
ComboBox1.Visible = True 'コンボボックスを表示
ComboBox1.List = Array() 'コンボボックスのリストをクリア'値を部分一致で抽出
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Sheets("DB").Cells(i, "A"), ComboBox1.Text) > 0 Then
'コンボボックスのリストに追加
ComboBox1.AddItem Sheets("DB").Cells(i, "A")
End If
Next
'リスト部分が選択されている場合
Else
'値を検索する
For i = 2 To Sheets("DB").Cells(Rows.Count, "A").End(xlUp).Row
If Sheets("DB").Cells(i, "A") = ComboBox1.Text Then
Sheets("検索").Range("B3") = Sheets("DB").Cells(i, "A") '商品
Sheets("検索").Range("D3") = Sheets("DB").Cells(i, "B") '価格
Sheets("検索").Range("B5") = Sheets("DB").Cells(i, "C") '残り数量
Sheets("検索").Range("B6") = Sheets("DB").Cells(i, "D") '必要数量
Sheets("検索").Range("A8") = Sheets("DB").Cells(i, "E") '備考
End If
Next
End If
KeyCode = 0 'コンボボックスをフォーカス
ComboBox1.DropDown 'リストを表示
End Sub