[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る
題名:
名前:
e-mail:
URL:
この情報を次回も使用する


スレッド一覧に戻る返信

[436] 外部ソフトとの連携

たま [2018/04/13 23:41:17]

いつも便利に使わせていただいています。
あるセルの内容を引数として外部ソフトを起動して、戻値をセルに代入する場合、下記のようでは駄目なんでしょうか。
マクロ
[x,y]=ShellOpen("CSCRIPT //nologo test.vbs", [x,y])
test.vbs
strPara = WScript.Arguments(0)+"XX"
WScript.Echo strPara
アドバイスいただけないでしょうか

Re: [436] 外部ソフトとの連携

あすかぜ [2018/04/14 18:13:15]

質問ありがとうございます。
ShellOpen 関数は外部ソフトを起動するだけで、その終了を待ったり戻り値・標準出力をチェックしたりはしません。
現時点での Cassava Editor の機能では、外部ソフトでの計算結果をマクロで利用するのは難しそうです。すみません。

下記のように外部ソフトで Cassava マクロを生成するようにすれば、
(1) マクロを生成する外部ソフトを起動するマクロを実行する
(2) 生成されたマクロを実行する
の 2 ステップで処理を実行できるかもしれません。

マクロ
ShellOpen("CSCRIPT", "//nologo C:\\...\\test.vbs \"" + [x,y] + "\"");

test.vbs
strPara = WScript.Arguments(0)+"XX"
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile("C:\...\Cassava\Macro\test.cms", 2, True)
objFile.WriteLine "[x,y]=""" + strPara + """;"
objFile.Close

なお、ShellOpen の第一引数は開くファイル名もしくは実行するコマンド名なので、"CSCRIPT" までが第一引数となり、"//nologo" 以降は第二引数に入ります。
よろしくお願いいたします。

Re: [436] 外部ソフトとの連携

たま [2018/04/14 23:10:13]

迅速なご回答ありがとうございました。
私自身ShellOpenなど、いくつか勘違いをしてたようで…。

複数回実行できるように
・ファイルのIOモードを2(書込)から8(追記)に修正
・y=y+1; を追加
修正しまして、思うような結果が得られました。
本当にありがとうございました。 またお手数をお掛けしました。

スレッド一覧に戻る返信