matlabでvbsを実行する方法

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

 採用された回答

Kojiro Saito
Kojiro Saito 2020 年 7 月 27 日

0 投票

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

2 件のコメント

qrqr
qrqr 2020 年 7 月 27 日
ありがとうございます。
やりたいことができました。
このコマンドではmatlbの変数を.vbsに受け渡すことはできるのでしょうか?
Kojiro Saito
Kojiro Saito 2020 年 7 月 27 日
数字や文字列などのシンプルな変数でしたら、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などのファイル渡しにする方法で実現できます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchangeデバッグと解析 についてさらに検索

製品

リリース

R2019a

質問済み:

2020 年 7 月 23 日

コメント済み:

2020 年 7 月 27 日

Community Treasure Hunt

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

Start Hunting!