- 締切済み
matlabで作成したdllをVBAで使用する/MWcomutil.dll, MWstruct
このカテゴリでよいのか自信がありませんが質問です。 matlabで作成したdllをエクセルVBAで使用しようとしています。dotnettoolでcom objectを作成しています。使用するPCにはmatlabはインストールされておらずMCRinstallerを実行してMWstruct等の構造体(というのでしょうか)を使用可能になるようにしています。 あるPC(PC#1)では全く問題なく使用できていましたが、他のPC(PC#2)で同様のプロセス(MCRinstallerの実行、使用dllのレジスター(regsvr32を使用))を辿ってもどうしても使用することができません。 VBAを実行するとMWstructを使用するところで停止し、エラーメッセージは、「can't find project or library」です。tools->referencesを見るとMWComUtilはversion 7.4と7.3があるようですが、どちらを使用しても同じ結果でした。matlab関係と思われるものは、プログラムのdllとMWComUtil以外には参照の必要がないと思うのですが違うのでしょうか?(PC#1では以上の二つの参照がOKであれば動作するようです) 参照可能ライブラリの中に、MWComMgrというのもあるので試しに参照してみましたが同じ結果でした。 実はPC#2以外にも複数のPCに試していますが、同じ結果となっています。何かを見落としているのと思いますが、ヒントをいただければ非常に助かります。 スペック概要: PC#1 windows XP home ed Excel 2003 PC#2 windows XP pro (windows 2000も試してみたが無理であった) Excel 2002 なお、windows update 等はすべて最新のものとしています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mtblue
- ベストアンサー率100% (3/3)
MATLABのバージョンはいくつでしょうか? 特にR12とR13以降ではMATLABの拡張APIが再編されているようです(私もこれのためにプログラムを書きなおした経験があります). それと, >使用するPCにはmatlabはインストールされておらず とのことですが,フローティングライセンスになっていると思います.ですから,あるPCで実行できて別のPCでは実行できないのはLANの設定ではないでしょうか? お使いになっているネットワーク環境がわかりませんのでなんともいえないのですが,一度,ネットワーク環境も調査してみてはいかがでしょうか? それと,フローティングライセンスですと,一度に認証サーバにアクセスできるクライアント数も確か制限があったと思います.ひょっとしたらその辺が影響があるかもしれません. 的外れなことをお聞きしていたらご容赦ください.
お礼
お礼が遅くなってしまい大変失礼いたしました。助言いただいたケースも検証してみましたが、解消されませんでした。 しかしながら、他に原因があることを発見いたしました。参照の設定で、ソルバーの参照が正しくできておりませんでした。ソルバーは実質使用していませんでしたので、参照自体を解除したところ、matlabのdllも問題なく動作するようになりました。エラーメッセージが的外れなものであった、ということのようです。 いずれにせよ助言ありがとうございました。