エクセルは他のブック(ファイル)にシートを丸々コピーすることができます。
でもシートのコピーって以外といろんなエラーが出るんですよね。
その中の1つが、『移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。』というやつ。
メッセージが1行でつらつら書かれているので、読みづらくてしょうがありません。
せめて改行してくれないでしょうか^^
原寸大のままだと、小さい画面ではエラーメッセージが小さくなって読めないので、2つに分割してみました。
なぜ「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため」となるのか
このエラーの正確なメッセージは以下の通りです。
『移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。』
ものすごく長いメッセージですね^^
メッセージを読むと、コピー先のブックの行数が少ないと書かれています。
エクセルはバージョンによって、行数(列数)の最大数が異なります。
当然新しいバージョンの方が行列数が多くなるんですが、僕が実際にエラーが出た時はコピー元がExcel2016でした。
コピー先がどのバージョンで作成されたエクセルかは正確にはわかりませんが、Excel2016の最大行数、最大列数より少ないバージョンのエクセルとなると、Excel2000、Excel2003しかありません。
Excel2000、Excel2003
- 最大行数:65,536行
- 最大列数:256列
- 拡張子:xls
Excel2007、Excel2010、Excel2013、Excel2016
- 最大行数:1,048,576行
- 最大列数:16,384列
- 拡張子:xlsx
これを見るとExcel2007からExcel2016と同じ最大行数と最大列数に変更されています。
なので、Excel2007以降のエクセルをExcel2003以前のバージョンにコピーするとエラーが出るということです。
バージョンよりエクセルファイルの拡張子の方がわかりやすいと思うので、このエラーが発生する条件は、以下のようにまとめることができます。
「移動先またはコピー先のブックの行列数が」の対応は、シート内の一部をコピー&ペーストするしかない
エクセルのバージョンの違いにより、シートのコピーでエラーになる原因はわかりました。
バージョンが新しいエクセルにどうしてもコピーしたい場合は、シートをそのままコピーするのではなく、『コピー元のコピーしたいシートの範囲(セル)をコピーし、コピー先でペースト』するしかありません。
でも単純にセルのコピー&ペーストすると、列幅や行高さはコピーされません。
つまり、レイアウトが崩れてコピーされてしまいます。
行の高さや列の幅もコピーできる方法はいくつかありますが、いくらか手間がかかります。
それでも、『元の列幅を保持』して貼り付ければ、一回の貼り付けで行高さ、列幅もコピーされます。
↓これはコピー元でコピーした行をコピー先で『元の列幅を保持』して貼り付けた例です。
2行目から11行目までコピーした行ですが、行の高さと列幅が他と違っている(行高さ、列幅もコピーされている)のがわかると思います。
この『元の列幅を保持』については、こちらの記事で詳しく手順を解説しているので、参考にしてください。
「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため」となる場合の対応まとめ
他のブックへのシートのコピーで、『移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため』というエラーが出ることはめったにありません。
なので、このエラーが出た場合はなんでエラーが出るのか理解できないかもしれませんが、そういう場合はコピー元とコピー先の拡張子が違っていないか確認してみましょう。
そして、どうしてもコピー先にコピーしたい場合は、今回紹介した『元の列幅を保持』して貼り付ける方法を試してみてください。
データが入ってる行を選択して、貼り付け一回で済むのでそんなに面倒でもありません。
『移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため』のエラーが出た場合、今回紹介した方法をぜひ参考にしてもらえればと思います。