大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、コンボボックスを使って絞りこみ検索するには、部分一致で値を抽出して、ForとIfで値を検索するとできます。絞りこみ検索ができれば、検索するデータが大量にあった場合でも、効率的に検索値を入力することができます。絞りこみ検索する方法について、マスターしていきましょう。

はじめに

この記事では、コンボボックスを使って絞りこみ検索する方法について、ご紹介します。

絞りこみ検索をするには、部分一致で値を抽出して、ForとIfで値を検索するとできます。

絞りこみ検索ができれば、大量データから検索する際でも、検索値の入力が効率的にできるようになります。

さらに、コンボボックスを使うとスムーズに値を検索できるようになります。

絞りこみ検索する方法について、マスターしていきましょう。

では、コンボボックスを使って絞りこみ検索する方法について、解説していきます。

この記事を読むメリット

  • コンボボックスを使って、絞り込み検索できるようになります。

本記事の内容を動画にて解説しております。

本記事の内容を動画にて解説しております。

VBAコードの作成手順について、動画で確認できます。

目次から見たい項目へ移動すると便利ですよ。

目次

コンボボックスで絞りこみ検索したい

コンボボックスで絞りこみ検索してみます。

やりたい内容

やりたい内容は、コンボボックスで絞りこみ検索したい、ということになります。

コンボボックスで絞りこみ検索したい

コンボボックスで絞りこみ検索したいです。

コンボボックスで絞りこみ検索したいです

データベースから絞り込み検索します。

データベースから絞り込み検索します

コンボボックスを使って、絞りこみ検索してみます。

絞りこみ検索してみる

ボタンクリックで、ユーザーフォームを表示します。

ボタンクリックで、ユーザーフォームを表示します

絞り込む値を入力して、Enterを押します。

絞り込む値を入力して、Enterを押します

検索する値を絞り込むことができます。

検索する値を絞り込むことができます

値を選択して、Enterを押します。

値を選択して、Enterを押します

これで、選択した値を使って、値を検索できます。

条件を絞りこんで検索できる

選択した値を使って、値を検索できます

選択した値を使って、値を検索できました。

では、絞りこみ検索するVBAコードを作成していきます。

VBAコードを作成

コンボボックスを使って、絞りこみ検索するVBAコードをポイント毎に作成していきます。

検索フォームを作成

検索フォームを作成します。

検索フォームを作成

検索フォームを作成します

こちらの検索フォームに、データベースから値を取得します。

ユーザーフォームを作成

ユーザーフォームを作成します。

ユーザーフォームを作成

ユーザーフォームを作成します

コンボボックスのオブジェクト名は、「Combobox1」のままにしておきます。

ユーザーフォームの「ShowModal」は「False」に設定しておきます。

シートを操作できるようにする

ユーザーフォームの「ShowModal」は「False」に設定しておきます

これで、ユーザーフォームを表示している場合でも、シートを操作できるようになります。

コンボボックスで条件を絞り込む

コンボボックスを使って、条件を絞り込む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
  End If
  
  KeyCode = 0 'コンボボックスをフォーカス
  ComboBox1.DropDown 'リストを表示
  
End Sub

コンボボックスを使って、条件を絞り込むことができます。

条件を絞り込む

F5キーで、ユーザーフォームを表示します。

F5キーで、ユーザーフォームを表示します

コンボボックスに値を入力して、Enterを押します。

コンボボックスに値を入力して、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

コンボボックスを使って、データを検索してみます。

絞りこんだ値からデータを検索

絞りこんだ値から選択して、Enterを押します。

絞りこんだ値から選択して、Enterを押します

データベースから値を検索できます。

データベースから値を検索できます

データベースから値を検索できました。

絞りこみ検索、便利です。

ボタンを追加

最後に、ユーザーフォームを表示する用のボタンを追加します。

次のVBAコードをボタンに登録します。

Sub TEST()
  
  'ユーザーフォームを開く
  UserForm1.Show
  
End Sub

ボタンを追加して、VBAコードを登録します。

ボタンを追加してVBAコードを登録

ボタンを追加して、VBAコードを登録します

これで、ボタンクリックで、ユーザーフォームを表示できます。

ボタンクリックで表示できる

ボタンクリックで、ユーザーフォームを表示できます

ボタンクリックで、ユーザーフォームを表示できました。

おわりに

この記事では、コンボボックスを使って絞りこみ検索する方法について、ご紹介しました。

絞りこみ検索をするには、部分一致で値を抽出して、ForとIfで値を検索するとできます。

絞りこみ検索ができれば、大量データから検索する際でも、検索値の入力が効率的にできるようになります。

さらに、コンボボックスを使うとスムーズに値を検索できるようになります。

絞りこみ検索する方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す