配布したExcel Add-inを実行すると「Error in VBAProject​:ActiveXコン​ポーネントはオブジェ​クトを作成できません​。」が表示される。

MATLAB関数をライブラリコンパイラでExcelアドインのインストーラーを作成し、 MATLABが入っていないPCにインストールし実行すると「Error in VBAProject:ActiveXコンポーネントはオブジェクトを作成できません。」が表示され実行できません。 また、PCによって実行ができるPCとできないPCが存在します。
これらを回避する方法を教えてください。

2 Comments

確認ですが、MATLAB Compilerの機能でMATLAB関数をExcelアドインにコンパイルし、Excel上で使用されている、という理解でよいですか?
はい。
そのとおりです。

Sign in to comment.

 Accepted Answer

Excel アドイン エラーと推奨される解決策 の3つ目のエラーですが、DLL が登録されていない可能性があります。
DLL が登録されていない場合、DOS ウィンドウを開き、フォルダーを '<projectdir>\distrib' (<projectdir> はプロジェクト ファイルの場所を表す) に変更して、次のコマンドを実行します。
mwregsvr <projectdll>.dll
詳細は、 アドインと COM コンポーネントの登録 を参照してください。

3 Comments

上記を実行しDOSウィンド上で「DllRegisterServer in myaddin_1_2.dll succeeded」が表示されました。
しかし再度Excel側で実行しても「Error in VBAProject:ActiveXコンポーネントはオブジェクトを作成できません。」が表示されてしまいます。
もし配布先 PC に複数の MCR をインストールされている場合は、mwregsvr が dll を作成した MATLAB バージョンの MCR ディレクトリ下に存在する exe であることもご確認ください。
dll を生成した MATLAB バージョンと、mwregsvr.exe のバージョンが異なることで、エラーが発生することもあります。DOS プロンプト上で 
> where mwregsvr 
と実行しますと、使用される (システムパスの先頭にある) mwregsvr.exe を確認できます。
where mwregsvrを実行したところ一番上にあるものは作成したdllのバージョンであることを確認しました。
MATLABのスタンドアローンアプリケーションで配布したところ問題なく実行できたので、
できないものに関してはそちらの方で対応使用と思います。
ご対応ありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!