huraicid’s blog

趣味100% 真面目な論述はないです

【技術備忘録】xlsファイルの1シートの行数上限は65536行

概要

いくつかのシートのデータを取得して組み合わせて、別シートに出力するマクロを組んでいた時に65,536行以上出力しようとして範囲外エラーが出た。

原因

.xlsファイルは1シートの行数上限が65,536行でその上限に引っかかっていた。

対処

Excel2007以降の環境であれば.xlsx or .xlsm形式に変換して保存すればOK(なぜかググっても.xlsxの場合しか組んでなかったけど.xlsmでも問題なし)。

  1. .xls形式のファイルを開き、ファイル > 名前を付けて保存 を開く。
  2. ファイルの種類(T)でExcel マクロ有効ブック(*.xlsm)を選択して保存する。
  3. 今開いてるファイルを開いて.xlsm形式のファイルを開きなおす

特に最後の手順は注意。これをやらないと65,536行上限は残ったままになる。

蛇足

.xlsx or .xlsmは1,048,576行が上限。1,048,576 = 220ではあるけどなんで8の倍数乗じゃないんだろう?

参考