概要
いくつかのシートのデータを取得して組み合わせて、別シートに出力するマクロを組んでいた時に65,536行以上出力しようとして範囲外エラーが出た。
原因
.xls
ファイルは1シートの行数上限が65,536行でその上限に引っかかっていた。
対処
Excel2007以降の環境であれば.xlsx
or .xlsm
形式に変換して保存すればOK(なぜかググっても.xlsx
の場合しか組んでなかったけど.xlsm
でも問題なし)。
- .xls形式のファイルを開き、
ファイル
>名前を付けて保存
を開く。 - ファイルの種類(T)で
Excel マクロ有効ブック(*.xlsm)
を選択して保存する。 - 今開いてるファイルを開いて.xlsm形式のファイルを開きなおす。
特に最後の手順は注意。これをやらないと65,536行上限は残ったままになる。
蛇足
.xlsx
or .xlsm
は1,048,576行が上限。1,048,576 = 220ではあるけどなんで8の倍数乗じゃないんだろう?