※当ページのアイコンは古いです。製品版ではアイコンのデザインが異なります
Excel 2007の標準ファイル形式は、従来の「xls」から「xlsx」に変わりました。この「xlsx」の実体は圧縮されたZIP形式ファイルで、中にはブックの情報がXML形式で保存されています。
たとえば「Book1.xlsx」を保存したとき、エクスプローラでこのファイルを見るとExcelのアイコンで表示されます。しかし、拡張子を「xlsx」から「zip」に変更すると、圧縮ファイルのアイコンに変わり、エクスプローラでダブルクリックすると中が表示されます。
圧縮ファイルの中は、複数のフォルダに分類され、それぞれにXML形式のファイルが存在します。XMLの知識がないと、どこに何が定義されているかもわからないでしょう。興味深いことは、拡張子を変更した「Book1.zip」をExcel 2007にドラッグ&ドロップすると、通常のブック同じように開けるということです。これは、従来のExcel 2003にテキストファイルをドラッグ&ドロップして開けるのと似ています。もちろん開いた圧縮ファイル(zip)は、そのままExcel 2007で編集することが可能で、上書き保存を実行すればzip形式のまま保存されます。
XMLファイルはテキスト形式で保存されます。メモ帳でも普通に開いて編集し、そのまま上書き保存することも可能です。したがって、上記のように手作業でブック内のデータを編集することもできます。ということは、ブックをExcelで開かなくても閲覧や編集ができるわけです。なるほど便利になりましたが、こうした操作をマクロから行うには相当な知識が必要になります。VBAにはzipファイルを解凍・圧縮するコマンドがないからです。zipファイルを操作するDLLは、オンラインソフトとして公開されていますので、そうしたDLLを使うしか(今のところ)手はありません。そして、その操作は決して簡単ではありません。なお、近い将来公開される.NET Framework 3.0では、zipファイルの圧縮・解凍をサポートされるそうです。