非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【ExcelVBA】外部プログラムを実行して標準出力を取得する(WScript.Shell/StdOut)

   

ExcelVBAで外部プログラムを実行しそこから出力された情報を取得する方法です。

外部プログラムについて

今回用意した外部プログラムは単純なもので、実行コマンドの引数を渡すと「This is a」を添えて出力されるというものです。”pen”と渡したら”This is a pen”と出力されます。今回はExcelマクロでその出力を捕まえようというわけです。

 

ソースコード

ソースコードはこちら。標準出力を捕まえられるWscript.ShellExecを使用しました。出力結果が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
 

 

実行結果

結果はご覧の通りです。外部プログラムからの標準出力を取得しシートに書き込むことができました。

 

 

 

スポンサーリンク

 - Excel, VBA