【Excelマクロ】入力されたデータの重複を自動チェック

重複の自動チェック

Excelにデータを入力する際、同じ内容が複数回登録されてしまう「重複」はよくある問題です。

たとえば、一度登録したメールアドレスが再度入力されたり、会社名が重複して登録されたりすると、データの正確性や実用性が落ちます。

そのため、マクロを使って「重複しているデータを自動的にチェックし、表示する」動作ができるとどうでしょうか?目視で確認するのは非効率なため、その確認をマクロにやらせると時間短縮ができます。

マクロにすることによるメリット

重複チェックをマクロで行うと

  • 入力ミスを防げる
  • 無駄な再登録を削減できる
  • データの正確性を高められる

入力直後に重複をチェックできる仕組みを取り入れておけば、何度もデータを整理し直す手間が減り、全体の作業もスムーズになります。

例)A列の重複データをハイライト表示

ここでは、たとえばメールアドレスがA列に入っている場合に、重複した行だけを黄色に表示するマクロを作成します。

マクロのコード例:

Sub HighlightDuplicates()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim cellValue As String
    Dim checkRange As Range

    Set ws = ThisWorkbook.Sheets("データ")
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    Set checkRange = ws.Range(Cells(2,1),Cells(lastRow,1))

    ' さきにハイライトを削除
    checkRange.Interior.ColorIndex = xlNone

    ' 重複検出
    For i = 2 To lastRow
        cellValue = ws.Cells(i, 1).Value
        If WorksheetFunction.CountIf(checkRange, cellValue) > 1 Then
            ws.Cells(i, 1).Interior.Color = RGB(255, 255, 0) ' 黄色
        End If
    Next i

    MsgBox "重複データに色を付けました"

End Sub
  • A2以降の列を調べて、同じ値が複数あるものについて、その行を黄色にします
  • CountIf 関数を使って重複を判別しています
  • Color = RGB(255, 255, 0) で黄色の背景色を指定しています

まとめ

重複データはありがちなミスの一つですが、まずは見つけるだけでも防止につながります。

手動で探すのは時間がかかり、見落としやすいため、まずは簡単なマクロから始めて、正確なデータ管理を目指していきましょう。

コメント