Excel2003まではExcelの拡張子はxlsでした。マクロの有無に関わらず使うことができました。
Excel2007からxlsx、xlsmを使うようになりました。
xlsxにはマクロが保存できません。一方、xlsmにはマクロが保存できます。
Excelにはマクロウイルスというものがあります。
xlsだとマクロが保存できるのでウイルスを仕込まれる可能性があります。
Microsoftはこれを防ぐためにxlsxとxlsmを使い分けるようになったのだと思います。
さらにExcel2007からはxlsbという拡張子が使えるようになりました。
xlsxは、実体はxlmであり、これをzip形式で圧縮したものです。
xlsmは、やはり実態はxlmですがマクロ部分はバイナリです。これをzip形式で圧縮したものです。
xlsbは、実体はバイナリであり、これをzip形式で圧縮したものです。サイズが小さくなります。
これらの3種類は拡張子をzipに変更すると展開することができます。
展開するとxlsxにはxmlが含まれていることが分かります。
xlsmにはxmlとマクロ部分のバイナリが含まれています。
種類 | 拡張子 | マクロあり | マクロなし |
---|---|---|---|
ブック | xlsx | 2275 | |
マクロ有効ブック | xlsm | 2543 | 2275 |
バイナリブック | xlsb | 1914 | 1641 |
97-2003ブック | xls | 4152 | 3024 |
マクロ | bin | 1136 | |
シート | xml | 11782 | 11782 |
上はあるExcelファイルを各拡張子で保存したものです。
マクロありとマクロなしがあります。
xlsに比べて、xlsx、xlsmのファイルサイズが小さいことが分かります。
xlsbはさらに小さいです。
これを見て分かるようにExcel2007以降であれば、xlsを使う理由がありません。xlsは使うべきではありません。
またxlsbはサイズが小さいですが、マクロが埋め込まれる可能性があり危険です。xlsbは使うべきではありません。
マクロなしならばxlsx、マクロありならばxlsmを正しく使い分けましょう。
コメント