Excelのバージョン互換

解決


テスト  2005-10-19 19:35:07  No: 126485

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

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

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

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


魔界の仮面弁士  2005-10-19 21:38:07  No: 126486

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

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

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

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

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

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


テスト  2005-10-20 03:43:38  No: 126487

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加