【ExcelVBA】外部プログラムを実行して標準出力を取得する(WScript.Shell/StdOut)
ExcelVBAで外部プログラムを実行しそこから出力された情報を取得する方法です。
外部プログラムについて
今回用意した外部プログラムは単純なもので、実行コマンドの引数を渡すと「This is a」を添えて出力されるというものです。”pen”と渡したら”This is a pen”と出力されます。今回はExcelマクロでその出力を捕まえようというわけです。
ソースコード
ソースコードはこちら。標準出力を捕まえられるWscript.ShellのExecを使用しました。出力結果がA1セルに書き込まれます。
pname = ThisWorkbook.Path Set wsh = CreateObject("Wscript.Shell") Set oExec = wsh.Exec(pname & "\test.exe pen") Do Until oExec.StdOut.AtEndOfStream sout = sout & oExec.StdOut.ReadLine() Loop Range("A1").Value = sout
実行結果
結果はご覧の通りです。外部プログラムからの標準出力を取得しシートに書き込むことができました。
スポンサーリンク