📘 Excel逆引き事典

【VBA】結合されたセルを開かずに(外部参照で)コピーする方法

手作業で結合されたセルの情報をコピーするのは時間がかかります。この記事では、VBAを使用して結合されたセルを開かずに外部参照で簡単にコピーする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopyMergedCells()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRow As Long, i As Long
    Set wsSource = ThisWorkbook.Sheets("Sheet1")
    Set wsTarget = ThisWorkbook.Sheets("Sheet2")
    Application.ScreenUpdating = False
    ' 元のシートから結合セルを取得する
    For Each cell In wsSource.UsedRange.SpecialCells(xlCellTypeConstants)
        If cell.MergeCells Then
            lastRow = wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1
            wsSource.Range(cell.Address).Copy Destination:=wsTarget.Cells(lastRow, 1)
        End If
    Next cell
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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