【VBA/マクロ】pingコマンドの応答結果をExcelに記録

ExcelのVBA(マクロ)で、pingコマンドの応答結果をExcelに記録する方法についてまとめました。

pingコマンドの応答結果をExcelに記録

Excel/VBAでは、「CreateObject(“WScript.Shell”)」を使って「Windows Script Host (WSH)」を実行することができます。
今回はこれを使って、「Excelファイルに記載されている全てのIPアドレスに対して自動でpingを送信し、成功・失敗の判定を記録するマクロを作成しました。

サンプルコード

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

Sub test()

    ' セルからIPアドレスを順に取得してping送信
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    
        ' WSH経由でping送信コマンドを実行
        cmd = "cmd.exe /c ping " & Cells(i, 1)
        Set wsh = CreateObject("WScript.Shell")
        
        ' pingの成功・失敗を右隣りに記述
        If wsh.Run(cmd, vbNormalFocus, True) Then
            Cells(i, 2).Value = "失敗"
        Else
            Cells(i, 2).Value = "成功"
        End If
        
        ' コマンドの初期化
        Set wsh = Nothing
        
    Next
    
End Sub

A列(A1~)に記載されているIPアドレスを取得して順にPINGテストしていきます。
そして、成功・失敗の結果をB列(B1~)に記録していきます。

関連記事
1 【Excel/VBA】マクロ入門
関連記事