ネットワークの基礎から実務まで、順番に学べるメニューです。
VBAコラム
複数拠点のPing確認を自動化する
拠点ごとの通信状態をExcelで確認しましょう
複数拠点の代表IPアドレスへPingを実行し、 疎通状態をExcelに一覧表示します。 拠点間VPNや遠隔拠点の簡易確認に利用できます。
できること
- 拠点ごとの代表IPアドレスへPingを実行する
- 疎通OK・疎通NGをExcelに一覧表示する
- 複数拠点の通信状態をまとめて確認する
処理の流れ
flowchart TB Start[Excel VBA] Input[拠点名と代表IPを入力] Ping[各拠点へPingを実行] Judge[疎通OK / 疎通NGを判定] Result[Excelに結果を一覧表示] Start --> Input Input --> Ping Ping --> Judge Judge --> Result
VBAコード
Sub CheckBranchPing()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim branchName As String
Dim ipAddress As String
Dim command As String
Dim result As Long
Dim wsh As Object
Set ws = ActiveSheet
Set wsh = CreateObject("WScript.Shell")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Range("A1").Value = "拠点名"
ws.Range("B1").Value = "代表IP"
ws.Range("C1").Value = "確認結果"
For i = 2 To lastRow
branchName = Trim(ws.Cells(i, "A").Value)
ipAddress = Trim(ws.Cells(i, "B").Value)
If branchName = "" And ipAddress = "" Then
ws.Cells(i, "C").Value = "未入力"
ElseIf ipAddress = "" Then
ws.Cells(i, "C").Value = "IP未入力"
Else
command = "ping -n 1 -w 1000 " & ipAddress
result = wsh.Run("cmd /c " & command, 0, True)
If result = 0 Then
ws.Cells(i, "C").Value = "疎通OK"
Else
ws.Cells(i, "C").Value = "疎通NG"
End If
End If
Next i
Set wsh = Nothing
MsgBox "複数拠点のPing確認が完了しました。", vbInformation
End Sub
入力例
| 拠点名 | 代表IP | 確認結果 |
|---|---|---|
| 本社 | 192.168.1.1 | 疎通OK |
| 富山拠点 | 192.168.10.1 | 疎通OK |
| 予備回線 | 192.168.20.1 | 疎通NG |
注意点
Ping応答は、拠点側のファイアウォールやルーター設定によって拒否される場合があります。 疎通NGと表示されても、必ずしも回線やVPNが停止しているとは限りません。
本ページの内容は、自社または管理対象ネットワークの確認を目的としたものです。 許可のないネットワークに対して探索や調査を行わないでください。
まとめ
- VBAを使うと複数拠点のPing確認を一覧化できます
- 拠点名と代表IPを管理すると確認作業がしやすくなります
- 疎通NGの場合は、回線だけでなく機器設定も確認してください
ネットワーク設計・トラブル対応でお困りではありませんか?
株式会社リアライズがサポートいたします。
- ネットワーク設計・構築
- トラブル調査・改善
- 業務効率化・自動化
コードの解説
拠点名と代表IPを読み取る
A列に拠点名、B列に代表IPアドレスを入力し、2行目から順番に処理します。
Pingを実行する
Windowsの
pingコマンドをVBAから実行し、各拠点の代表IPへ疎通確認を行います。終了コードで判定する
コマンドの終了コードが
0の場合は疎通OK、それ以外は疎通NGとして扱います。結果をExcelへ出力する
確認結果をC列へ出力し、複数拠点の状態を一覧で確認できるようにします。