ExcelのVBAでマクロを実行してPingコマンドを実行するコードサンプルです。
Sub PingTest()
Dim cmd As String
Dim url As String
Dim return_code As Long
Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")
'URLの設定
url = "google.com" 'IPアドレスの場合には「192.168.10.1」など
'url = "www.google.com" 'Return Code : 0
'url = "8.8.8.8" 'Return Code : 0
'url = "xxxyyyzzz" 'Return Code : 1
'url = "https://www.google.com" 'Return Code : 1
' IPアドレスまたはホスト名を取得してping送信
' WSH経由でping送信コマンドを実行
cmd = "cmd.exe /c ping " & url
'Ping実行時の戻り値を取得
return_code = wsh.Run(cmd, vbNormalFocus, True)
' pingの成功・失敗を記述
Debug.Print return_code '0 or 1
'コマンドプロンプトでの標準出力結果を取得する場合の記述
Debug.Print wsh.Exec(cmd).StdOut.ReadAll()
' オブジェクトの後処理
Set wsh = Nothing
End Sub
「WScript.Shell」経由でコマンドプロンプトを起動してPingコマンドを実行しています。
WScript.ShellスクリプトのRunメソッドを使用した場合、戻り値(整数)があるためそれを取得しています。1つ目の引数で実行コマンドを記述します。2つ目の引数でウィンドウのスタイルを指定します。「vbNormalFocus」は既定値でウィンドウをアクティブにして表示します。3つ目の引数をTrueとすることで同期処理を行っています。
WScript.ShellスクリプトのExecメソッドを使用した場合、標準出力を取得できます。