📘 Excel逆引き事典

【VBA】重複データをエラー処理付きで転記する方法

毎日の業務で重複データを手動で管理するのは大変ですよね?この記事では、Excel VBAを使って重複データを自動的に別のシートに転記し、エラー処理も含めて効率化します。初心者でもすぐに実行できるように詳しく解説しています。

サンプルコード

VBA
Option Explicit
Sub DuplicateDataTransfer()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRowSrc As Long, i As Long, j As Long
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False '画面更新を停止
    Set wsSource = ThisWorkbook.Sheets("SourceSheet") 'ソースシート名を指定
    Set wsTarget = ThisWorkbook.Sheets("TargetSheet") 'ターゲットシート名を指定
    lastRowSrc = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row 'ソースシートの最終行取得
    For i = 2 To lastRowSrc 'データ開始行は2行目と仮定
        If Not dict.exists(wsSource.Cells(i, 1).Value) Then '重複チェック
            wsTarget.Cells(j + 1, 1).Value = wsSource.Cells(i, 1).Value '重複しないデータを転記
            j = j + 1 'ターゲットシートの行インデックス更新
        End If
    Next i
    Application.ScreenUpdating = True '画面更新再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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