「docx」「xlsx」ファイルを開けない

「Office 2007」での仕様変更

いまだに定期的に聞かれるこの問題。
10年以上前の話であっても、「Microsoft Office」の利用者は非常に多いので、
一定の割合で古いOfficeを使い続けている人はいらっしゃいます。

Microsoftは、かなり互換性を大事にするソフトウェアメーカーだと思ってるんですが、
Officeのファイル形式について、大きな変更をしたことがあります。
それが、拡張子にすると「doc」→「docx」への変更であり、また「xls」→「xlsx」への変更。

もちろん、PowerPointの「ppt」→「pptx」への変更も同じですが、
実用上問題となって聞かれるのは、ほとんど「docx」と「xlsx」、つまり、WordとExcelです。
これは、使用者が多いというのもありますが、
ソフトウェアの性質上、第三者にファイルを渡すことが多いからだと思います。

「Microsoft Office」の標準ファイル形式の変更

「Microsoft Office」は、「Office 2007」で標準のファイル形式を大幅に変更しました
時期としては、「Windows Vista」と同じタイミングです。

バイナリからテキストベースに変わっているので、根本的に違います
従って当然、互換性もありません。
別物なので、ファイルの拡張子を分けて、これらを区別しています。

「Office 2003」までは、「Microsoft Office バイナリ」ファイル形式でしたが、
「Office 2007」からは、「Open Office XML」ファイル形式になっています。※参考: Microsoft Office - Wikipedia
というわけでまとめると、

doc, xls Microsoft Office バイナリ
docx, xlsx Open Office XML

です。

「Open Office XML」形式のファイルは、文字通りXMLで書かれています。
「docx」「xlsx」ファイルは、XMLファイルをZIPで圧縮したものです。
XMLファイルはテキストファイルなので、テキストエディタで開くことができ、内容を確認することができます。
試しに、「docx」や「xlsx」の拡張子を「zip」に変更し、展開してみるとわかります。

XMLファイルはメタデータ込みで書かれているので、人間が読むには難儀しますが、
より一般的な仕組みに則って作られているため、他のソフトウェアにとっては扱いやすい形式です。
「docx」「xlsx」ファイルのほうが、汎用性が高いのです。

これに対して、旧来の「doc」「xls」ファイルは、Microsoft独自のバイナリファイルです。
基本的に、Officeで使うことしか考慮されておらず、汎用性に乏しいファイル形式です。

従来と互換性がなくても、新しいファイル形式にすることによるメリットのほうが大きいため、
Microsoftは「Office 2007」より、「Open Office XML」ファイル形式を標準としたのだと思います。

旧バージョンのOfficeでファイルを開く

古いバージョンのOfficeは新しいファイル形式に対応していないので、
そのままでは「docx」「xlsx」ファイルを開くことはできません。
それでも、新旧バージョンのOffice間でファイルのやりとりをすることはできます。

「Microsoft Office バイナリ」形式で保存する

つまり、「doc」「xls」ファイルとして保存します。
身も蓋もない話ですが、「docx」「xlsx」ファイルを使わなければいいのです。

「Microsoft Office」は、この標準ファイル形式の変更によって、
前方互換性は失われたものの、後方互換性は維持されています。
「docx」「xlsx」ファイルに対応していなくても、「doc」「xls」ファイルには新旧Office共に対応しているので、
そちらを使ってファイルのやりとりをします。

あまり建設的な方法ではありませんが、
特に広く配布するファイルは、「doc」「xls」ファイルのほうがいいと思います。

「Microsoft Office 互換機能パック」を使う

古いバージョンのOfficeでも「docx」「xlsx」ファイルを開けるようにするための、
「Microsoft Office 互換機能パック」というMicrosoft純正のツールがありました。
「ありました」と過去形になっているのは、
「Microsoft Office 互換機能パック」は、2018年4月で公開停止になったからです。
そもそも、「Microsoft Office 互換機能パック」が対象とするバージョンのOfficeは、
とっくにサポート終了してますので、致し方ないかと。

一応、今でも「Microsoft Office 互換機能パック」を入手することは可能です。
正規の入手先ではありませんが、下記ページよりダウンロードできます。
実行ファイルとしては、「FileFormatConverters.exe」です。

非公式ダウンロードページ Microsoft Office Compatibility Pack - Download3K

ただし、これは英語版です。
英語版でも日本語環境で動作しますし、
そもそも「Microsoft Office 互換機能パック」自体に日本語での操作が求められることはほとんどないので、
英語版でも不都合はないと思います。

インストールする前に、WindowsとOfficeのアップデートをしておくべきです。
「Microsoft Office」はWindowsと密接に絡んでいるので、
対応が不完全だと、「Microsoft Office 互換機能パック」の適用も不完全になります。
でもまあ、「docx」「xlsx」ファイルを開くだけなら可能だったりするんですが。

ダウンロードしたインストーラを実行すると、ソフトウェアライセンス条項への同意が求められます。
同意しないと先へ進めないので、チェックボックスにチェックを入れて「Continue」

インストール中。
環境にもよりますが、1分もかからないと思います。

インストールが完了しました。
ぱっと見、何が変わったのかわからないくらいです。

最大にして重要な変化は、「docx」「xlsx」ファイルの関連付けです。

たとえば、「xlsx」ファイルに未対応のOfficeでは、アイコンがこのように表示されます。

ファイルの「プロパティ」を確認すると、
ファイルの種類「XLSX ファイル」に対して、プログラムは「不明なアプリケーション」、
つまり、対応するソフトウェアへの関連付けは行われていません。

それが、「Microsoft Office 互換機能パック」をインストールすると、
「xlsx」ファイルのアイコンが変わります。
ということは、ファイルの関連付けが変更されています。

「xlsx」ファイルは、「Microsoft Office Excel 2007 Workbook」と認識され、
プログラムは「Microsoft Open XML Converter」へと関連付けが設定されます。※日本語版でも一緒。

この「Microsoft Open XML Converter」、何をやっているかと申しますと、
「Microsoft Office バイナリ」ファイルと「Office Open XML」ファイルの変換を行っています
ファイル形式の変換を行うためだけのプログラムが、「Microsoft Open XML Converter」です。

先ほどの「xlsx」ファイルをダブルクリックすると、
一瞬だけファイルを変換しているとのウィンドウが表示されます。
これが「Microsoft Open XML Converter」で、
「Microsoft Office バイナリ」形式のファイルを、「Office Open XML」ファイルに変換しています。

変換が終了すると、インストールされている旧バージョンのOfficeでファイルが開かれます。
気をつけなければならないのは、「docx」「xlsx」ファイルを直接開いているわけではないということ。
開いているのは、「Microsoft Open XML Converter」が変換した「doc」「xls」ファイルです。

「Microsoft Office 互換機能パック」は、
旧バージョンのOfficeを「docx」「xlsx」ファイルに完全対応させるものではありません。
旧バージョンのOfficeが開くことができるのは、「doc」「xls」ファイルだけです。
この点は何も変わっていません。

「Microsoft Office 互換機能パック」をインストールすることで、「docx」「xlsx」ファイルを開くことはできますが、
それは間に「Microsoft Open XML Converter」というプログラムを挟むことで実現している機能であり、
旧バージョンのOfficeは本質的には変わっていません。
ご注意ください。