NOOCIW

タグ: Ping

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