Pingで疎通確認を実行するVBAコードサンプル

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メソッドを使用した場合、標準出力を取得できます。

すぐに使用してみたい方はこちら

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA