comdlg32.ocx コンポーネントを含むフォームを含む Excel スプレッドシートをネットワーク共有に配布したいと考えています。
Windows 7 ユーザーは、このコンポーネントをインストールまたは登録していない可能性があります。Windows 7 でこのコンポーネントを自動的に確認してインストールする方法はありますか?
私はかつて、次の行に沿って何かを行うコードをいくつか持っていました
on error goto errhandler
try to instantiate an object of type x
we're not in the error handler - the dll must have already been registered!
continue processing...
exit sub (or whatever)
errhandler:
shell "regsvr.exe /s " & path_to_dll
retry instantiation
regsvr の呼び出しが失敗した場合に無限ループに陥らないようにする必要があることは明らかです。さらに、dll をネットワーク共有に登録することはお勧めしません。次回マクロを実行するときに使用できない可能性があります。最初にローカル ドライブにコピーしてみてください。
考慮すべきもう 1 つの点: 単一のシステム DLL をコピーするべきではありません。それらはセットでリリースされ、バージョン管理の問題が発生する可能性があるためです。ただし、リスクを冒して先に進む方が簡単な場合もあります。