|
▼yuki さん、neptune さん:
こんにちは。
>>"C:\Program Files\Microsoft Office\Office\Excel.Exe" / regserver
>↑はコマンドプロンプト(DOSシェル?)へ打ち込むコマンドです。
>いくらなんでも、こんな事は起動の度には普通しないと思います。
について
>> 複数のバージョンの Office がインストールされている場合の
>> Office オートメーションについて
>>
>> h tp://support.microsoft.com/kb/292491/ja
> このスイッチは、テストや開発の目的には使用できますが、
> 運用時の手段として使用することはお勧めできません。
と「勧められない」と但し書きつきながら
MSで公式にアナウンスされています。
Excel2000 と Excel2007 が混在環境で存在していて、
どうしても先にインストールした Excel2000 を
OLEで呼び出したいのであれば
方法のひとつだと思われますがいかがでしょうか?
> 実行してみると「型が一致しません。」とのエラーが表示されます。
> VBAの記載方法が違いますか・・?(;_;)
neptune さんのご回答にもありましたが、
コマンドプロンプトにそのまま打ち込む様な感じになるため、
strPath = """C:\Program Files\Microsoft Office\Office\Excel.Exe"" /regserver"
Shell strPath, 1
のように、ダブルクォーテーションをさらに囲ってあげる必要がありますね。
当方の環境(Excel2003のみ)で行うと
レジストリへの登録に多少時間がかかります。
Shellメソッドが非同期のため次の行のコードが実行されるので
こちらについても対策が必要になってきますね。
(「Shell」「同期」などでWeb検索すれば出てくるかと思われます。)
ただ、当方としても
・VBA のコードとして可能である(と思う)
という為に提示させて頂いているだけであり、
実運用にそのまま使えるかどうかはまた別の話かと思います。
|
|