- 題名・名前・本文は必ず入力してください。
- 題名は、できれば具体的な本文内容がイメージできるものにしてください。
- スパムよけのため、本文中に句読点記号が含まれていない場合にはエラーとなります。 「,」「.」ではなく「、」「。」を使ってください。
- [バグ][要望][質問][済][未] の分類は管理人が後から勝手に付加しています。 書き込み時は意識する必要はありません。
[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; を追加
修正しまして、思うような結果が得られました。
本当にありがとうございました。 またお手数をお掛けしました。