Excelのバージョン互換

解決


テスト  2005-10-19 10:35:07  No: 126485  IP: [192.*.*.*]

いつもお世話になっています。

VB6.0からExcelを作成して書き込みプログラムを考えています。
そこで質問なのですが、開発する際「参照設定」からExcelのライブラリ
を選択しますが、 Excel2000とExcel2002(XP)/2003でライブラリが異なります。

もしExcel2000で開発した場合に使用する端末のバージョンがExcel 2000/2002(XP)/2003 でそれぞれ異なる場合にまずい事はあるのでしょうか。
また、逆にExcel2003で開発した場合にまずい事はあるのでしょうか。

申し訳ありませんがご回答宜しくお願いします。

編集 削除
魔界の仮面弁士  2005-10-19 12:38:07  No: 126486  IP: [192.*.*.*]

おそらく問題があると思います。

たとえば、SaveAsメソッドを例に挙げてみますが、このメソッドは、
  Excel 2000 以下 …… 引数9個
  Excel 2002 以上 …… 引数10個
のように、タイプライブラリ上の引数定義が異なっていたりします。
(定義が変化したメソッドは、他にもあります)


一応、Excel 2002/2003 には、引数9個バージョンの方のメソッドも、
隠しメソッドとして残されており、引数10個バージョンのメソッドの方は
(タイプライブラリ上は)新設のメソッドという扱いを受けていますので、
2000用アプリを 2002環境で動かす事はできるかも知れません。(未確認)
しかし、その逆の動作については実行時エラーになると思われます。


という事で、配布先のバージョンを特定出来ない場合の対策案。

案1) 参照設定を使わないようにする。
案2) 各バージョンごとの環境を用意し、個別に exe を用意する。
案3) どの Excel にも対応できるような、互換ライブラリを自作する。

妥当な所では、案1 でしょうか。イベントが使えないと言う欠点はありますが、
"Excel が終了しなくなる問題"を避ける意味でも、安全な手法かと思います。

編集 削除
テスト  2005-10-19 18:43:38  No: 126487  IP: [192.*.*.*]

魔界の仮面弁士さん
ご回答ありがとうございます。

案1 で検討させて頂きます。

編集 削除