Excelの結合セルを一括解除してコピーする方法

2020年5月6日

Excelでフィルターしたデータをコピーする際に結合セルがあると、「この操作は結合したセルには行えません。」というエラーメッセージがでてコピーできません。

一旦フィルターを解除して結合したセルを元に戻して実行すれば問題なくコピーできますが、データの数が多いと手間を要します。
そんな時、VBAを使って2行ほどのプログラムを組むと簡単にコピーできます。
サンプルプログラムは以下の通りです。

結合セルを一括解除してコピーするサンプルアプリの説明

フィルター機能を使って市町村区分が「町」のデータを抽出します。
抽出した後、「結合一括解除後Sheet2へコピー」 ボタン を押すと、結合したセルが解除されコピーするデータの範囲が選択されて「Sheet2」に表がコピーされます。

1.フィルター機能を使って市町村区分が「町」のデータを抽出する。

2.「結合一括解除後Sheet2へコピー」 ボタン をクリックすると結合したセルが解除され「Sheet2」に表がコピーされます。

サンプルアプリのソースコード  コードの作成手順はこちら

Sub ボタン1_Click()

  '対象範囲を指定して結合を解除
   Range("B5:D18").UnMerge

  '表全体を選択して、シート「Sheet2」の同じ場所にコピー
   Range("B5").CurrentRegion.Copy Sheets("Sheet2").Range("B5")
   
End Sub

Range.Merge メソッドの説明

 Range(“B5:D18").UnMerge の解説
 セルB5からD18までの範囲の結合を解除するためRange(“B5:D18").UnMergeとしています。
 逆に結合する時は  Range(“B5:D18").Merge  とします。

Range.Copy メソッドの説明

 Range(“A5").CurrentRegion.Copy Sheets(“Sheet2").Range(“A5") の解説
 CurrentRegionプロパティで、コピー元を「どこのセルからどこのセルまで」ではなく
 「ひとかたまりのセル範囲全部」を指定します。
 そして、Copy Sheets(“Sheet2").Range(“A5") で 「Sheet2」シートの「A5」セル
 の位置に表を貼り付けます。