📘 Excel逆引き事典

【VBA】結合されたセルの完全一致で転記する方法

手作業でのデータ転記は時間がかかるだけでなく、ミスのリスクも高まります。この記事では、Excel VBAを使用して結合されたセルを完全一致で別の場所に自動的に転記する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopyCells()
    Dim ws As Worksheet, srcWs As Worksheet, destWs As Worksheet
    Dim lastRowSrc As Long, lastRowDest As Long, i As Long
    Set ws = ThisWorkbook.Sheets("Sheet1") ' ソースシート名を指定してください
    Set srcWs = ThisWorkbook.Sheets("SourceSheet") ' 元のデータがあるシート名を指定してください
    Set destWs = ThisWorkbook.Sheets("DestinationSheet") ' 転記先のシート名を指定してください
    Application.ScreenUpdating = False
    lastRowSrc = srcWs.Cells(srcWs.Rows.Count, 1).End(xlUp).Row ' 元データのある最終行を取得
    For i = 2 To lastRowSrc ' 2行目からループ開始(1行目はヘッダーと仮定)
        If srcWs.Range("A" & i).MergeArea.Address = ws.Range("B" & i).MergeArea.Address Then ' 完全一致チェック
            destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Offset(1, 0) = srcWs.Range("C" & i).Value ' 転記先のセルに値をコピー
        End If
    Next i
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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