PAGE TOP

取り組み

印刷する

Excelのセルに入る文字数を試してみた

さぼ郎
Excelの行数は、Excel2003(.xls)までは、最大列数=256列、最大行数=65,536行でした。

列数は、2の8乗、つまり1バイト。
行数は、2の16乗、つまり2バイト。

ここでいう領域が意味するものは分かりませんが、かつての16ビットマシンなら整数領域であることが関係していたのかもしれません。

それが、Excel2007(.xlsx)からは、最大列数=16,384列、最大行数=1,048,576行に拡張されました。

ちなみに、Accessのテーブルの列幅は、いまでも255です。64ビット版でも同じです。

64ビット版で1400万件のクロス集計をした時、若干早かったような気もしますが、全くと行っていいほど64ビット版のメリットはありませんでした。

ビット数で言うと、列数は14ビットで行数が20ビット。これが意味するものも分かりませんが、ようはそれだけ大きな領域を用意しているということで、CPUが強力になっていることと無関係ではありません。

推定ではありますが、この大きな表がレイヤになっていて、「数字」「書式」「数式」などが用意されていて、アドレスでオーバーレイされているものと推定されます。

図 オーバーレイ

セル内で、書式を変えたりすることの管理をどのようにしているかは、実際のところは不明ですが、おそらくセル内での書式変更があることが分かれば、そのセルだけは文字数に対応した書式を、どこかで保持していいるのだろうと思います。

セルに入れられる最大文字数は、どうなっているのかというと、マイクロソフトのホームページでは「32,767文字」だそうです。

ビット数で言うと、15ビットです。

列の最大幅は「255」と出てきますが、何が「255」なのかは分かりません。行の最大高さは「409.5」と表示されます。

ブックのシート数は「使用可能メモリに依存」とのことですが、言わんとする意味が分かりません。たしか、64ビットになると、最大が2ギガだとか聞いたことがあるような気がしますが、最大列数=16,384列、最大行数=1,048,576行の制約は変わりません。

さて、肝心なセルの最大文字数ですが、実際にワードで32,800文字(全角)を作って改行を散り除いてセルに貼り付けてみると、32,759文字まで入ります。溢れた文字は次のセルに入ります。

図 24ページ

図は、32,800文字をワードで作ったもので、24ページもなっています。秀丸で改行を取ってExcelに貼り付けると、列幅と行の高さで全部を表示できないので文字の大きさを3.2ポイントにしたら、全体が見えるようになりましたが、模様のようです。

図 3.2ポイント

このExcelをテキスト書き出しをすると、当然といえば当然なのですが、32,759+41=32,800文字として戻ります。

意地悪テストとして、32,759文字を1,048,576行にコピーしてみましたが、ちょっと時間がかかりすぎているので強制終了しました。

ちなみに、Excelがさまよっている間、Wordの無反応になりました。こんなところは仲が良さそうです。何かが共有されているのでしょう。

図 ワード共有

そういえば、セル固有の書式スタイルは「64,000」だそうです。かつて、カジコさんが作ったExcelのレポート作成マクロで、書式設定が限界になったことがありますが、それが「64,000」だったかは不明です。

キーワード