いつもお世話になっています。
VB6.0からExcelを作成して書き込みプログラムを考えています。
そこで質問なのですが、開発する際「参照設定」からExcelのライブラリ
を選択しますが、 Excel2000とExcel2002(XP)/2003でライブラリが異なります。
もしExcel2000で開発した場合に使用する端末のバージョンがExcel 2000/2002(XP)/2003 でそれぞれ異なる場合にまずい事はあるのでしょうか。
また、逆にExcel2003で開発した場合にまずい事はあるのでしょうか。
申し訳ありませんがご回答宜しくお願いします。
おそらく問題があると思います。
たとえば、SaveAsメソッドを例に挙げてみますが、このメソッドは、
Excel 2000 以下 …… 引数9個
Excel 2002 以上 …… 引数10個
のように、タイプライブラリ上の引数定義が異なっていたりします。
(定義が変化したメソッドは、他にもあります)
一応、Excel 2002/2003 には、引数9個バージョンの方のメソッドも、
隠しメソッドとして残されており、引数10個バージョンのメソッドの方は
(タイプライブラリ上は)新設のメソッドという扱いを受けていますので、
2000用アプリを 2002環境で動かす事はできるかも知れません。(未確認)
しかし、その逆の動作については実行時エラーになると思われます。
という事で、配布先のバージョンを特定出来ない場合の対策案。
案1) 参照設定を使わないようにする。
案2) 各バージョンごとの環境を用意し、個別に exe を用意する。
案3) どの Excel にも対応できるような、互換ライブラリを自作する。
妥当な所では、案1 でしょうか。イベントが使えないと言う欠点はありますが、
"Excel が終了しなくなる問題"を避ける意味でも、安全な手法かと思います。
魔界の仮面弁士さん
ご回答ありがとうございます。
案1 で検討させて頂きます。
ツイート | ![]() |