あなたは住所録や価格リストなど大きな表から該当箇所をフィルターで検索して探すのが面倒だと思ったことはありませんか?
エクセルのフィルター機能は便利ですが、いちいちフィルターの三角ボタンを押すのが面倒ですよね。
エクセルマクロを使えば、セルに文字を入れれば、自動で検索して、結果表示も自動でやってくれます。
今回は「エクセルマクロでセルに文字を入れると自動検索しヒットした行だけ表示する方法」を紹介します。
エクセルマクロでセルに文字を入れると自動検索しヒットした行だけ表示する方法
エクセルマクロでセルに文字を入れると自動検索しヒットした行だけ表示する方法です。
今回は、下のような表を検索するのを例に紹介します。
B1セルに文字入力すると、B5~B100セルの中を検索し、ヒットした行だけを表示します。
![](https://everyday-level-up.com/wp-content/uploads/2024/06/1.jpg)
1.Alt + f11 でマクロ画面を開く
2.モジュールを選択して開く。ここでは「Sheet89(Sheet83)」をダブルクリック
![](https://everyday-level-up.com/wp-content/uploads/2024/06/2.jpg)
3.コードを入力
コードを入力します。
B1セルに文字入力すると、B5~B100セルの中を検索し、ヒットした行だけを表示します。
![](https://everyday-level-up.com/wp-content/uploads/2024/06/3-1.jpg)
赤枠部のコードです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim searchText As String
Dim cell As Range
Dim targetRange As Range
' B1セルが変更された場合のみ実行
If Not Intersect(Target, Range("B1")) Is Nothing Then
' B1セルの内容を取得します
searchText = Range("B1").Value
' 検索範囲を設定します
Set targetRange = Range("B5:B100")
' すべての行を表示します
targetRange.EntireRow.Hidden = False
' 検索範囲の各セルをチェックし、一致しない行を非表示
For Each cell In targetRange
If InStr(1, cell.Value, searchText, vbTextCompare) = 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
End If
End Sub
コードを入力したら、コードの入力画面を閉じて下さい。
4.B1セルに文字を入力
B1セルに文字を入力します。
![](https://everyday-level-up.com/wp-content/uploads/2024/06/4.jpg)
5.自動検索され、該当する行のみが表示された
B1セルに入力後、enterを押すと、B1セルの文字で、自動検索されて、該当する行のみが表示されました。
![](https://everyday-level-up.com/wp-content/uploads/2024/06/5.jpg)
これで、検索が簡単になりますね!
まとめ
エクセルマクロでセルに文字を入れると自動検索しヒットした行だけ表示する方法です。
1.Alt + f11 でマクロ画面を開く
2.モジュールを選択して開く。ここでは「Sheet89(Sheet83)」をダブルクリック
3.コードを入力
4.B1セルに文字を入力
5.自動検索され、該当する行のみが表示された
これで、検索結果が自動表示されるので、楽になります。
ちなみに,元に戻すときはB1セルを空欄にしてEnterを押すと、表全体を表示するのに戻ります。
コメント