質問: エクセルの2002でプログラムを開発中です。ローカルフォルダで動いているエクセルの、あるシートをサーバーの任意フォルダにファイルとして保存するものです。 ところが今日、職場で2002で保存したファイルを2007で開こうとすると【ファイル拡張子が示す形式と異なります】のエラー。逆に2007で保存したファイルを2002で開こうとすると【このファイルの形式を認識できません。】のメッセージエラー。職場で複数の同僚との活用を考えており、同僚が使うエクセルはそれぞれバージョンが違います。 なお、ネットでググるとファイルフォーマットを指定する必要があると書いてあり、workbook.SaveAs("abc.xls", Excel.XlFileFormat.xlWorkbookNormal)となっています。そこで★マークの部分を書き足しました。これで動くでしょうか?つまり、どのバージョンで保存しても、別のバージョンで開けるようになるのかどうか。 (すみません、ググったのは家に帰ってきてからです。明日、職場で確かめてこようと思いますが今からは行けません。月曜日に使いたいのです。パージョンの違いがあっても使えるかどうかの評価がほしいのです。)
回答: xlWorkbookNormal は使用しているバージョンのフォーマットで保存されますので、 2007 でこれで保存した場合は、下位バージョンで開くことができません。 下位バージョンのフォーマットで保存するのが基本です。 ですから、保存時のフォーマットは xlExcel9795 を指定した方が良いでしょう。 ただ、2007 以降とそれ以前では機能に大きく差がありますので、変更内容によって完全な再現は できませんのでそのあたりは把握しておいた方が良いかと思います。