エクセルで検索機能をさらに強化!セルと行を瞬時にハイライトするマクロ

エクセル

こんにちは、エクセルを使いこなしたい皆さん!

今日は、エクセルで検索したデータを瞬時にハイライトするためのマクロを紹介します。

「これ、めちゃくちゃ便利!」と思わず感動してしまうマクロです。

ぜひ、自分のワークシートに取り入れて、作業効率をグンとアップさせましょう!

まずは基本編:検索したセルを黄色でハイライト

まず、最初にご紹介するのは、検索した値があるセルを黄色にハイライトするマクロです。

検索結果が一目でわかるだけでなく、その周辺の情報も見やすくなるので、データの分析や確認作業が一段と楽になります!

例えば下の様な表があって、「I1」セルにIDを入れると、表のIDセルが黄色くなるようにしてみます。

1.「alt」 + 「f11」 →「Sheet1(sheet1)」をダブルクリック

2.コードを入力

赤枠部のコードです。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim searchRange As Range
    Dim cell As Range
    Dim searchValue As String
    
    ' ワークシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を変更してください
    
    ' 検索範囲を指定
    Set searchRange = ws.Range("A1:F10")
    
    ' I1セルが変更された場合のみ処理を実行
    If Not Intersect(Target, ws.Range("I1")) Is Nothing Then
        ' I1セルに入力された検索値を取得
        searchValue = ws.Range("I1").Value
        
        ' 検索範囲内のセルをループ
        For Each cell In searchRange
            ' セルの値が検索値と一致する場合
            If cell.Value = searchValue Then
                ' セルを黄色に塗りつぶす
                cell.Interior.Color = vbYellow
            Else
                ' 一致しない場合は塗りつぶしをクリア
                cell.Interior.ColorIndex = xlNone
            End If
        Next cell
    End If
End Sub

どうなるの?

このマクロを使うと、I1セルに入力した検索値がシート内にあるかどうかをすぐに見つけられます。さらに、そのセルが黄色にハイライトされるので、データの確認が一瞬で完了!もう、複雑なシートでもデータを見失う心配はありません。

I1セルに入れたIDが黄色くなった。

他のIDを入れても同じようにセルが黄色くなった。

応用編:検索したセルが含まれる行をまるごとハイライト

次に紹介するのは、検索結果が含まれる行全体をハイライトするマクロです。

これにより、検索したデータだけでなく、その関連情報までまとめて確認できます。

大量のデータを扱う際に、これはかなり便利ですよ!

赤枠部のコードです。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim searchRange As Range
    Dim cell As Range
    Dim searchValue As String
    
    ' ワークシートを指定
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を変更してください
    
    ' 検索範囲を指定
    Set searchRange = ws.Range("A1:F10")
    
    ' I1セルが変更された場合のみ処理を実行
    If Not Intersect(Target, ws.Range("I1")) Is Nothing Then
        ' すべての行の色をクリア
        ws.Rows.Interior.ColorIndex = xlNone
        
        ' I1セルに入力された検索値を取得
        searchValue = ws.Range("I1").Value
        
        ' 検索範囲内のセルをループ
        For Each cell In searchRange
            ' セルの値が検索値と一致する場合
            If cell.Value = searchValue Then
                ' 該当するセルがある行全体を黄色に塗りつぶす
                cell.EntireRow.Interior.Color = vbYellow
            End If
        Next cell
    End If
End Sub

どうなるの?

このマクロを使えば、検索したセルが含まれる行全体が黄色にハイライトされます。

これにより、例えば、特定の取引先に関する情報や、特定の日付のデータが一目で確認できるようになります。

関連データをすぐに見つけられるので、分析が格段に効率的になりますね!

I1セルに入れて、ヒットした行全体が黄色くなった。

まとめ: マクロでExcelをさらにパワーアップ!

この2つのマクロを活用すれば、エクセルでの検索作業が格段にスムーズになります。

セル単体でのハイライト、行全体のハイライト、どちらも使いこなして、エクセルマスターへの道を歩んでください!

これで、あなたのエクセル操作もさらにプロフェッショナルに近づきますよ!

コメント

タイトルとURLをコピーしました