• ベストアンサー
  • すぐに回答を!

AccessVBA 複数バージョンExcelが混在する環境で、任意のバージョンの起動したい

  • 質問No.1994660
  • 閲覧数3008
  • ありがとう数4
  • 回答数3

お礼率 76% (90/117)

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

Access97 WinXPを使用しております。
当方開発環境にExcel97,2000,XPがインストールされております。

AccessVBA上にてCreateObjectする際に
Set oXl = CreateObject("Excel.Application") 'excel起動
という風にActiveXオブジェクトとしてExcelを起動しているのですが、
この際、Excel2000が起動されます。
おそらく最後にインストールしたバージョンが2000(だったと思います)
だからなのだと思うのですが、
上記のソースのまま、
起動するExcelのバージョンを任意に変更することはできないのでしょうか。

起動するアプリケーションのフルパスを指定することで起動はできるのだとは思うのですが
客先環境のExcelのインストール先ディレクトリと、
当方環境のExcelのインストール先ディレクトリが異なるため、
フルパスの指定以外で起動できないか、ご教示いただきたく、質問させていただきました。

何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 53% (26/49)

>Set oXl = CreateObject("Excel.Application.8")
のようにする場合は、まず、
HKEY_CLASSES_ROOT\Excel.Application.8のCLSID値を確認してください。
アプリケーションによりますが、バージョンを指定したとしても、
最後に導入したバージョンが起動してしまうものがあります(Wordなど)
CLSID値が最新バージョンのものに書き換わっていた場合は、
Excel97のCLSID値をOffice97の純粋環境で確認の上、自己責任でレジストリを書き換えるか、
もしくは、
フルパス指定でExcel97を起動してから、GetObjectでオブジェクトを取得する方法もあります。

あまり参考になりませんが。
http://support.microsoft.com/kb/214388/
お礼コメント
o_w_nakazaki

お礼率 76% (90/117)

ご返答を頂き、ありがとうございます。

CLSIDを調査してみたのですが、
どのバージョンの値も同じ様でした。

ご提示いただいたリンクを元に
いろいろ試してみたいと思います
投稿日時:2006/03/03 16:32

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 50% (3003/5914)

Set oXl = CreateObject("Excel.Application.10")
のように(10は、2002,OfficeXP)バージョンを指定できると思います。
この場合のバージョン番号は、
Application.version
で調べてみてください。
お礼コメント
o_w_nakazaki

お礼率 76% (90/117)

早々のご回答、ありがとうございます。
返事がなぜか送信出来ずに今まで経ってしまいました。すみません

ご提示いただいた方法で起動してみたのですが
どのバージョン番号を指定してもExcel2000が起動してしまいます。

もう少し調査してみます。
ありがとうございました。
投稿日時:2006/03/03 16:32
  • 回答No.1
客先環境でも、複数のバージョンが混在していることもあるのではないでしょうか?
そういう場合、バージョンの選択基準が問題になるのではと思います。
ここは、単純に、XXXXX.ini ファイルを配布するようにしたら...

ExcelPath= XXXXXXXXXXX

Accessのトップメニュー等に、メモ帳を開き ini ファイル を更新できるコマンドボタンでも配置しておけば宜しいかと。
お礼コメント
o_w_nakazaki

お礼率 76% (90/117)

早々のご回答、ありがとうございます。


複数開発業務においてActiveXオブジェクトでのExcel起動を行っており、呼び方も
Set oXl = CreateObject("Excel.Application") 'excel起動
と、同じように呼び出しているので、

"Excel.Application"
で呼び出されるアプリケーションを指定できる方法がどこかにないかなと思い質問した次第です。

今後iniファイルでパスを持つ方針となると、環境ごとにiniファイルの設定する必要があるのではないかと
思いますので、できれば避けたいと考えております。
投稿日時:2006/02/27 13:57
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ