matlabコードの中で、vbaを実行しようとしています。
エクセルにvbaを記述しているわけではなく、.vbsのファイルにしてあります。
.exeの感覚で run(test.vbs)ができるかと思ったのですができませんでした。
やり方がわかる方いましたら回答お願いいたします。

 Réponse acceptée

Kojiro Saito
Kojiro Saito le 27 Juil 2020

0 votes

WindowsのCScriptやWScriptを実行させる方法でどうでしょうか。
MATLABから!記号systemコマンドでOSのコマンドを実行できますので、以下のように.vbsファイルをバッチモード(//B)で実行できます。
!CScript vbsTest.vbs //B

2 commentaires

qrqr
qrqr le 27 Juil 2020
ありがとうございます。
やりたいことができました。
このコマンドではmatlbの変数を.vbsに受け渡すことはできるのでしょうか?
Kojiro Saito
Kojiro Saito le 27 Juil 2020
数字や文字列などのシンプルな変数でしたら、sprintfを使って変数を実行コマンドに入れることで実現できます。
例えば、変数aを.vbsに渡す場合は、
a = 3;
cmdToRun = sprintf("CScript vbsTestInput.vbs %d", a);
[status,cmdout] = system(cmdToRun, '-echo');
と実行することで.vbsに渡せます。
.vbs側では、Wscript.Argumentsを使って入力引数を受け取るようにします。
vbsTestInput.vbs
Set args = Wscript.Arguments
For Each arg In args
WScript.Echo arg
Next
もっと複雑なデータだったら.txtや.csvなどのファイル渡しにする方法で実現できます。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Version

R2019a

Community Treasure Hunt

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

Start Hunting!