📘 Excel逆引き事典

【VBA】重複データを完全一致で転記する方法

日々の業務では、大量のデータの中から特定の条件に合うデータを見つけ出し、それを別の場所へと移動することがよくあります。特に完全一致で重複しているデータを一括して処理したい場合、手作業では時間がかかります。この記事では、VBAを使用して簡単に重複データを転記する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub DuplicateDataTransfer()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRowSrc As Long, lastRowTgt As Long, i As Long, j As Long
    Dim cellValue As String
    
    ' シートの参照設定
    Set wsSource = ThisWorkbook.Sheets("Sheet1")
    Set wsTarget = ThisWorkbook.Sheets("Sheet2")
    
    ' 画面更新を停止して処理速度を向上させる
    Application.ScreenUpdating = False
    
    ' ソースシートの最終行取得
    lastRowSrc = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    ' データ転記処理
    For i = 1 To lastRowSrc
        cellValue = wsSource.Cells(i, 1).Value
        If Not IsEmpty(cellValue) Then
            ' ターゲットシートの最終行取得
            lastRowTgt = wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1
            
            ' 完全一致チェック
            For j = 1 To lastRowSrc
                If cellValue = wsSource.Cells(j, 1).Value And i <> j Then
                    wsTarget.Cells(lastRowTgt, 1) = cellValue
                    Exit For
                End If
            Next j
        End If
    Next i
    
    ' 画面更新を再開
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。