MENU
カテゴリー
Yu
Excelに関する記事を配信中!
どうぞゆっくり見ていってください!

ExcelのVBAを使用し、検索ボタンでリストボックスに絞り込みする方法

VBA_検索ボタン

ExcelのVBAを使用していると、「検索ボタン」を作ってリストの絞り込みをしたいということがあるでしょう。

私も仕事で検索ボタンを使用することが多いので、出来るなら自分で作りたいと考えていろいろ調べました。

そこでこの記事ではVBAを使用し、検索ボタンでリストボックスに尿字する方法を紹介します。

検索ボタンのコード例は人によっていろいろと違いますので、この記事を読んで作成した後はアレンジしてみましょう。

Yu

出来上がりは以下のようなイメージで、例としてはBと入力して検索をクリックすると、リストボックスにはBが含まれる氏名が表示されます。

 

VBA検索4

目次

検索ボタンを作る下準備

VBAでユーザーフォームを挿入する画像

まずはAlt+11でVBAの入力画面を呼び出し、その後ユーザーフォームを挿入しましょう。

続いて、コマンドボタンとリストボックスを使用して配置します。

検索ボタンのためのボタン配置

 

Excelのsheetには表を作成しておきましょう。

検索ボタンの下準備として表の画像

これで検索ボタンを作成するための下準備は完成です。

検索ボタンでコンボボックスに表示するコード例

次に、コードを入力する例を紹介します。

以下のコードをコピペしましょう。

 '検索ボタンでキーワードが含まれる氏名を呼び出し
Private Sub CommandButton1_Click()
    Dim 文字 As String
    Dim i As Integer, リスト As Integer, フラグ As Integer
        
    文字 = TextBox1
    i = 3  'Excelのsheetで入力を開始した行数
    フラグ = 0
    リスト = 0

    '最初にリストボックスの中身をリセット
    ListBox1.Clear
    
    If 文字 = "" Then
        MsgBox "何も入力されていません"
        
    End If
    
    '同じ文字が合った場合はコンボボックスに追加する
    Do Until Worksheets("Sheet1").Cells(i, 1) = ""  'もしB列であればCells(i, 2)
         If InStr(Worksheets("Sheet1").Cells(i, 1).Value, 文字) <> 0 Then
                
                    ListBox1.AddItem ""
                    ListBox1.List(リスト, 0) = Worksheets("Sheet1").Cells(i, 1)
  
                    
                リスト = リスト + 1
                フラグ = 1
        End If
                i = i + 1
    Loop
    
     '同じ氏名が見当たらなかった場合はメッセージ
     If フラグ = 0 Then
        MsgBox "検索した氏名が見つかりませんでした"
        
     End If
                
End Sub

 

InStrを使用することで、テキストボックスに入力した文字と同じ文字があるかどうかを調べます。

メッセージボックスは入れた方が分かりやすいと思ったので入力しましたが、もし不要な場合は削除してもいいでしょう。

 

 今回のコード例ではsheetに氏名のリストを追加しても検索に支障がない。空白の行まで検索するため、途中に空白の行を入れた後に氏名を入力しないよう注意

実際に使ってみると、最初に見せたような検索ボタンが出来上がっているでしょう。

検索ボタンの見本

まとめ

今回はユーザーフォームを使用し、検索ボタンでリストボックスに表示する方法について紹介しました。

リストボックスは非常に便利なフォームですが、sheetに大量のデータがある場合は探すだけでも手間がかかります。

データ量が多い時は今回のように検索ボタンを使用することで仕事の効率化に繋がりますので、是非おすすめです。
Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。

仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。

講師

ユーザーフォームをイチから学ぶ場合は以下のまとめ記事から見てみましょう。


Yu

また、リストボックスやコンボボックス、スピンボタンの使い方もおすすめです。

以下のExcel記事もおすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次