📘 Excel逆引き事典

【VBA】結合されたセルを配列を使って高速にコピーする方法

手作業で結合されたセルをコピーするのは時間がかかります。この記事では、VBAを使って高速に結合されたセルを配列を通じてコピーする方法を紹介します。これにより、業務効率が大幅に向上します。

サンプルコード

VBA
Option Explicit
Sub CopyMergedCells()
    Dim ws As Worksheet, targetWs As Worksheet
    Dim lastRow As Long, i As Long
    Dim sourceRange As Range, targetRange As Range
    
    ' シートの指定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set targetWs = ThisWorkbook.Sheets("Sheet2")
    
    Application.ScreenUpdating = False
    
    ' 最終行の取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' ループで結合セルを配列に読み込み、コピー先シートへ書き込み
    For i = 1 To lastRow
        Set sourceRange = ws.Range("A" & i)
        If sourceRange.MergeCells Then
            targetWs.Cells(i, "A").Value = sourceRange.Value
        End If
    Next i
    
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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