Excelのバージョンを指定したい


ss  2009-04-17 19:08:28  No: 101652

環境にエクセル2000と2007は入っています。

Set gExcel = CreateObject("Excel.Application")

でさくせいすると、gExcel には、2007が入ってしまいます。

VBの参照設定は、2000用

なぜでしょうか?


魔界の仮面弁士  2009-04-17 22:19:51  No: 101653

複数バージョンの Excel がインストールされている場合に、
CreateObject や New Excel.Application を用いても、
特定のバージョンのみを起動させる事はできなかったはずです。

"Excel.Application.8" や "Excel.Application.12"といった
バージョン別の ProgId は用意されていますが、そもそも
CLSID 自体が {00024500-0000-0000-C000-000000000046} で
共通しているため、後にインストールした方しか起動しなかったかと。

バージョンを切り替えるのであれば、予め、管理者権限において
  "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" /regserver
を実行すれば、レジストリ設定を特定バージョンに変更することが
できるかも知れません。(バージョン混在環境が手元に無いので未確認です)

あるいは CreateObject を使うのではなく、フルパスを指定して
Excel.exe を起動するようにして、それを DDE で操作するか、あるいは
GetObject で拾って操作する方式が使えるかも知れません。保証はできませんけれども。


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

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






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