Excelの結合セルを一括解除してコピーする方法
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」セル
の位置に表を貼り付けます。
ディスカッション
コメント一覧
まだ、コメントがありません