エクセル2007以降で採用されたファイル保存形式に、xlsx、xlsm、xlsbがありますが、どういう違いがあり、どう使い分ければいいのか、ちょっと検証しました。
※拡張子(xlsx、xlsm、xlsb)は、拡張子をzip等にして解凍すると内部的なファイル構成を確認できます。
■xls(2003形式):マクロ無し ※互換モードで実行
ファイルサイズ:約120MB
起動:約7秒
マクロ実行:約4分
■xlsx:マクロ無し
ファイルサイズ:約46.5MB
起動:約20秒
マクロ実行:(不可)
内部ファイル形式:バイナリ
■xlsm:マクロあり
ファイルサイズ:約46.2MB
起動:約24秒
マクロ実行:約1分
内部ファイル形式:xml +VBA(.bin)はバイナリ
※VBAの情報はテキストソースであるのかもと思いましたが、やはりバイナリでした。
■xlsb:
ファイルサイズ:約28.2MB
※ちなみにxlsで120MBのファイルをzipで圧縮した29MBとほぼ同等です。
起動:約7秒
マクロ実行:約1分
内部ファイル形式:ほとんどバイナリ(.bin)ファイル
マクロ入りでエクセル2003以前で動かさなくていいなら、xlsb(バイナリ形式)が一番パフォーマンスが高いようです。(データ量やマクロの処理内容にもよるかもしれませんが。)
では。