MATLAB Answers

matlabでvbsを実行する方法

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

  0 Comments

Sign in to comment.

Accepted Answer

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

  2 Comments

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

Sign in to comment.

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!