【VBA/マクロ】MS-DOSの標準出力(実行結果)を取得

ExcelのVBA(マクロ)で、MS-DOSの標準出力(実行結果)を取得する方法についてまとめました。

MS-DOSの標準出力(実行結果)を取得

Excel/VBAでは、「StdOut.ReadAll」メソッドでMS-DOSコマンドの標準出力を取得できます。
今回は、WSH(Windows Scripting Host)でipconfigコマンドを実行し、その標準出力(結果)を取得してメッセージボックスに表示してみます。

サンプルコード

サンプルプログラムのソースコードです。

Sub test()

    Dim WSH, wExec, cmd As String, Result As String
    Set WSH = CreateObject("WScript.Shell")
    
    ' 実行したいDOSコマンド
    cmd = "ipconfig"
    
    ' DOSコマンドを実行
    Set exec = WSH.exec("%ComSpec% /c " & cmd)
    
    ' DOSコマンドが終了するまで待機
    Do While exec.Status = 0
        DoEvents
    Loop
    
    ' DOSコマンドの実行結果(標準出力)を取得
    Result = exec.StdOut.ReadAll
    
    ' 取得した標準出力をメッセージボックスに表示
    MsgBox Result
    
    ' オブジェクトを空に
    Set wExec = Nothing
    Set WSH = Nothing
    
End Sub
関連記事
1 【Excel/VBA】マクロ入門
関連記事