エラーの内容
Excelで範囲をコピーし、貼り付け先をクリックしてCtrl+Vを押すと、データの代わりに次のダイアログが表示されます:
Excel cannot paste the information because the cut or copied area contains merged cells, and the paste area is not the same size
Excelは貼り付けを完全にブロックします。さらに悪いことに、この過程でクリップボードの内容が消去されるため、やり直す前に元のデータをコピーし直す必要があります。
原因
結合セルは、複数の行または列を1つの論理セルとして扱います。結合を含む範囲をコピーすると、Excelは貼り付け先でまったく同じ形状を再現する必要があります。形状が合わない場合(結合パターンの違い、列数の不一致、スペース不足など)、レイアウトが壊れるのを防ぐためExcelは貼り付けを拒否します。
よくある原因:
- コピー元でA1:C1が結合(3列幅)されているが、貼り付け先が1列しかない。
- 貼り付け先に異なるパターンの結合セルが既に存在する。
- 非表示行に結合セルを含むフィルター済みの範囲をコピーした。
- コピー元の結合スパンに合わせて展開できない単一セルを貼り付け先として選択した。
解決策1 — コピー前にセル結合を解除する(最も確実)
まずコピー元の結合を解除してからコピーし、見た目が必要であれば後で再結合します。
- 結合セルを含むコピー元の範囲を選択する。
- ホーム → 配置 → セルを結合して中央揃え → セル結合の解除に進む。
- 範囲をコピーする(Ctrl+C)。
- 貼り付け先の左上のセルをクリックして貼り付ける(Ctrl+V)。
- レイアウトが必要であれば、両方の場所で再結合する。
コピー元に結合がなければ、形状の競合は発生しません。最初の試みで貼り付けが成功します。
解決策2 — 形式を選択して貼り付け → 値のみ
書式ではなくデータだけが必要な場合、形式を選択して貼り付けを使うと結合の競合を完全に回避できます:
- コピー元の範囲をコピーする(Ctrl+C)。
- 貼り付け先の左上のセルをクリックする。
- Ctrl+Alt+Vで形式を選択して貼り付けを開く。
- 値を選択し、OKをクリックする。
Keyboard shortcut sequence:
Ctrl+C → copy source
Ctrl+Alt+V → open Paste Special
V → select Values
Enter → confirm
値のみの貼り付けは、データを配置する前に結合の定義を含むすべての書式を取り除きます。貼り付け先の状態がどうであれ、問題にはなりません。
解決策3 — 一時的な作業用シートを経由する
コピー元のレイアウトを変更できない場合は、使い捨てのシートを経由する方法があります:
- シートタブを右クリック → 挿入 → ワークシートで空白のシートを作成する。
- コピーしたコピー元をCtrl+Alt+V → 値で空白シートに貼り付ける。
- 結合のなくなった空白シートから実際の貼り付け先にコピーする。
- 作業用シートを削除する。
空白シートへの最初の貼り付けで結合の形状がすべて取り除かれます。2回目の貼り付けは純粋なデータとなり、きれいに貼り付けられます。
解決策4 — 貼り付け先の結合レイアウトを一致させる
貼り付け先の結合書式を維持したい場合は、貼り付け前に貼り付け先でコピー元の結合スパンを正確に再現する必要があります。
- コピー元を確認し、どのセルが結合されているかとそのスパン(例:A1:C1、D2:D4)をメモする。
- 貼り付け先で、同じ相対位置に同じ結合を手動で適用する。
- 貼り付けを実行する — 形状が一致しているのでExcelが受け付ける。
現実的には、この方法は2〜3個の結合スパンしかないシンプルで固定されたレイアウトにのみ有効です。それ以上複雑な場合は、解決策1または解決策2の方が大幅に時間を節約できます。
解決策5 — 繰り返し作業用のVBAマクロ
毎週同じ結合セルのテンプレートからコピーしている場合(月次レポート、ダッシュボード、データインポートなど)、マクロを使えば結合解除・コピー・貼り付けのサイクル全体を自動化できます:
Sub CopyWithoutMergeError()
Dim srcRange As Range
Dim dstRange As Range
Set srcRange = ThisWorkbook.Sheets("Source").Range("A1:D10")
Set dstRange = ThisWorkbook.Sheets("Destination").Range("A1")
' Unmerge source temporarily
srcRange.UnMerge
' Copy values only to destination
srcRange.Copy
dstRange.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
MsgBox "Done — data copied without merge conflict."
End Sub
Alt+F8からCopyWithoutMergeErrorを選択して実行します。シート名と範囲参照をご自身のワークブックに合わせて変更してください。
コピー元の結合レイアウトを保持したい場合は、UnMergeを呼び出す前に結合スパンを配列に記録しておき、マクロの最後に再適用してください。
修正の確認
貼り付けが成功した場合の確認ポイント:
- ダイアログが表示されない — データが途切れることなく貼り付け先に表示される。
- 期待するすべての値が存在する。予期しない空白セルがない。
- 形式を選択して貼り付け → 値を使用した場合、貼り付け先のセルをクリックする。数式バーに参照式ではなく生の値が表示される。
- 貼り付け先の範囲内に
#REF!エラーが存在しない。
再発防止策
- セルの結合の代わりに「選択範囲内で中央」を使用する — 見た目はまったく同じですが、実際にはセルが結合されません。範囲を選択 → Ctrl+1 → 配置タブ → 横位置:選択範囲内で中央。これらのセルはコピー・貼り付けが正常に機能します。
- シートをまたぐコピーには形式を選択して貼り付けを標準にする — Ctrl+Alt+V → Vは、貼り付けが失敗してからどの結合セルが原因かを探すよりも速い方法です。
- データ範囲には結合セルを使わない — 結合セルはソート、フィルター、テーブル参照も機能しなくなります。レポートのヘッダーのみに使用し、データセルには絶対に使用しないようにしてください。

