エクセルシートコピーがエラーになる現象に対処
エクセルを使われたことのある方はとても多いのではないでしょうか。
かくいう私も毎日のように操作しています。
資料作成には欠かせないソフトといえます。
そんな中、エクセルで作成した資料を1つのファイルにまとめる作業をしていたところ、次のようなエラーが発生しました。
「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー]コマンドと[貼り付け]コマンドを使用して移動またはコピー先のブックシートに挿入してください。」
一瞬何がおこったの?
と思いましたが、ググって調べ対処できましたので、忘備録として記録いたします。
今回の現象
エクセルファイル2つ開き、片方のエクセルシートを別のエクセルファイルへコピーしようとしたら「コピーできない」というエラーが発生しました。
なにやら長いエラーメッセージが表示されて、コピーが失敗しました。
一体何がいけなかったのでしょうか?
シートコピーが失敗したのは、異なるバージョンでのエクセルファイル間でのコピーをしたため
ググってみると、エクセルファイルのバージョンが異なると、シートコピーに失敗するとありました。
正確にはエクセル2003以前で作られたファイルにコピーした場合現象が発生します。
よく見るとコピー先のエクセルは古いファイルでした
実はエクセル2003以前とエクセル2007以降では最大行数/最大列数が異なります。
さらに調べてみると、古いバージョンは最大行数、最大列数が少ないことがわかりました。
最大行数 | 最大列数 | |
エクセル2003以前 | 65,546 行 | 256 列 |
エクセル2007以降 | 1,048,576 行 | 16,384 列 |
新しいバージョンのエクセルシートを、エクセル2003以前で作られたファイルにコピーしようとすると、最大行数、最大列数が大きすぎるためコピーできませんエラーとなっていたのです。
部分コピーであれば、最大数を超えないため古いバージョンのエクセルにもコピーできますが、シートコピーの場合は、最大行列数でコピーされるため、行列数が不足しているとエラーになります。
ちなみに、逆はOKでした。
古いエクセルシート→新しいエクセルシートへのシートコピーは問題なくできました。
行列数が少ない場合は問題ないようです。
エラーになる原因は分かったけど、何とかできないの?
古いエクセルファイルへのシートコピーができない原因はわかりました。
これを何とかする方法はないのでしょうか?
古いエクセルファイルを最新のエクセルファイルに変換する
現象はエクセルファイルのバージョンが古いから発生します。
ならば、新しいバージョンのエクセルファイルに変換してやればいいのです。
事実最新版に変換したところ、うまくコピーできました。
そのやり方を解説します。
(1)古いエクセルファイルを別名で保存する
ファイルのバージョン変換といっても、別名で保存するだけです。
以下のように、エクセル最新バージョンにして保存すればOKです。
最新バージョンに変換したエクセルは、シートコピーがちゃんとできます
エクセル2003から最新版のエクセルに変換したファイルをひらき、先ほど同様にシートコピーをしてみたところ、うまくコピーができました。
力技でコピーペーストする方法もありますが、やりやすいほうでよいかと思います。
ただ、シートコピーの場合は行の高さや列幅も複製されるため、個人的にはエクセルファイルバージョン変更のほうが使い勝手がよかったです。
今使っている古いエクセルファイルは新しいバージョンに再保存が良いです。
過去のエクセルファイルすべてを最新版に変換するのはかなり大変ですが、現在作業しているエクセルファイルのバージョンがが古い場合は、再保存でバージョン変換したほうが良いです。
なぜなら、今回の問題は古いバージョンで作られたエクセルをそのまま再利用していたから発生しました。
そして、新しいバージョンに変換しても不都合は全くありませんでした。
それに別名保存なので、古いほうのエクセルファイルが消えるわけではありません。
エクセルは大抵昨年のエクセルファイルを複製して使用するケースが多いです。
ならば、複製する際に別名保存して最新バージョンにしてあげれば今回のような問題が起きなくなります。
それにしても、いまだに20年前近くのエクセルデータを使うことがあったことに、自分でも驚きでした。
メールやWindowsに関するトラブル・問題解決の記事を以下にまとめています。
またご参考になれば幸いです。