Excel

エクセルVBAのCountIf関数で重複データを見つけ出し、一目で分かるように赤塗りにする方法

エクセルを使ったデータ分析は、多くのビジネスシーンで欠かせません。しかし、大量のデータの中から重複した情報を見つけ出すのは一苦労。今回は、そんな時に役立つ、エクセルVBAを使って重複データを一発で赤塗りにする方法を紹介します。これでデータの整理が一段と効率的に!

赤塗りにするとはどういうことか?

まずは、具体的にどのようにエクセル表が変化するのかを見てみましょう。ここでは、A1からE2の範囲に重複したデータが入力された場合、そのセルが赤く塗りつぶされるようにします。

エクセル表内の入力内容が重複したセルを赤塗りにするエクセルイメージ

この視覚的な変化は、重複データの特定を迅速に行うのに非常に有効です。

VBAコードの解説

次に、この機能を実現するためのVBAコードを見ていきましょう。このコードは、シート内のデータが変更された際に動作します。CountIf関数を使って、指定した範囲内で同じ値が存在するかチェックし、重複があればそのセルを赤くします。

ここで大切なのは、どのようにVBAを書けば、効率的かつ正確に重複を検出できるかという点です。ループ処理と条件分岐を駆使し、シンプルながらも強力なコードを作成しています。

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim h As Long
    Dim i As Long
    
    For h = 0 To 1
        For i = 1 To 5
            If WorksheetFunction.CountIf(Range("A1:E2"), Cells(1 + h, i)) > 1 Then
                Cells(1 + h, i).Interior.ColorIndex = 3
            Else
                Cells(1 + h, i).Interior.ColorIndex = 0
            End If
        Next i
    Next h
    
End Sub

Worksheet_Change()はエクセルシート内で変更があった場合の処理です。CountIfを使ってA1~E2範囲内(A1:E2)で同じ文字があった場合、そのセルを赤塗りにし、それ以外はセルの塗りを無しにする処理を記述しました。

実際に試してみよう

理解を深めるために、ぜひ実際にコードを試してみてください。以下のリンクから参考ファイルをダウンロードできます。ダウンロード後、エクセルで開いて、VBAエディタにコードを貼り付ければ、すぐに試すことができます。

yo1tec/VBA-CountIf

まとめ

エクセルVBAは、データ処理の効率化に大きく貢献します。今回紹介した技術を使えば、データの重複チェックを自動化し、より迅速かつ正確に業務を進めることが可能になります。プログラミング初心者の方でも、この記事を参考に挑戦してみてください。きっと、エクセルの新たな可能性が開けるはずです。

 
※流用される場合は自己責任でお願いします。