今回はExcelやAccessからコマンドプロンプトで使われるpingコマンドを使って、簡単にサーバやホストへの接続確認をする方法をお伝えします。
早速ですがユーザー定義関数を用意しました。
成功すればTrue(真)、失敗すればFalse(偽)が返るようにしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
'ipAdsOrHstNm・・・ IPアドレス(192.168.1.2 ...etc)orホスト名(www.microsoft.com ...etc) 'sendTimes ・・・ 送信回数 'conMS ・・・ タイムアウトまでの時間(ミリ秒) '返り値 成功:True / 失敗:False Public Function VBACheckPing(ByVal ipAdsOrHstNm As String, _ Optional sendTimes As Long = 4, _ Optional conMS As Long = 100) As Boolean '参照設定 Windows Script Host Object Model Dim WSH As New WshShell Dim pngCmd As String pngCmd = "ping -n " & sendTimes & " -w " & conMS & " " & ipAdsOrHstNm VBACheckPing = WSH.Run(pngCmd, 7, True) = 0 End Function |
WshShellオブジェクトのRunコマンドで、コマンドプロンプト(cmd)のコマンドが使えます。
上記プログラムではマークしている14行目で使っています。
使い方は以下の通りです。
最低限、IPアドレスまたはホスト名を引数に設定してください。
1 2 3 4 5 6 7 8 9 10 |
'通信が確立したときは「接続可能」、確立しなかったら「接続不可」のメッセージを出力 Sub MainProcess() If VBACheckPing("www.yahoo.co.jp") Then MsgBox "接続可能", vbInformation Else MsgBox "接続不可", vbExclamation End If End Sub |
ユーザー定義関数なので、Excelのシートのセルで関数として使えるようになります。
是非使ってみてください。
今回は以上です。
---コメント---