①マクロを使えるようにする
「マクロを使えるようにする」を参照
②検索文字入力欄と検索ボタンを配置
③ボタン配置時の以下の画面で「マクロ名」を「SearchGoods」として「新規作成」を押す
④「Microsoft Visual Basic for Applications」にて以下のコードを記載
※表の形式に応じて「★」のついた箇所の数値を変更
Sub SearchGoods() '検索文字入力行・列 Dim searchValueRow As Integer: searchValueRow = 2 '★ Dim searchValueCol As Integer: searchValueCol = 2 '★ '検索対象列 Dim targetCol As Integer: targetCol = 3 '★ '検索開始行 Dim startRow As Integer: startRow = 5 '★ '検索終了行 Dim lastRow As Integer: lastRow = 9 '★ '半角文字で区切った検索文字を配列に格納 Dim searchValues() As String: searchValues = Split(Cells(searchValueRow, searchValueCol).Value, " ") '開始行から終了行までループ For i = startRow To lastRow Step 1 Dim val As Variant '半角文字で区切った検索文字でループ For Each val In searchValues '検索文字が含まれない場合は行を非表示にして次の行へ If InStr(Cells(i, targetCol).Value, val) = 0 Then Rows(i).Hidden = True GoTo Continue End If Next val '全ての検索文字が含まれる場合、または検索文字が何も入力されていない場合は '行を表示 Rows(i).Hidden = False Continue: Next End Sub
検索データの行数が増える場合は10行目のコードを以下のようにしておく事で、
追加した行数も考慮して最終行の取得が可能
Dim lastRow As Integer: lastRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1