ネットワークの基礎から実務まで、順番に学べるメニューです。
VBAコラム
Ping結果をExcelに一覧表示する
Ping確認の結果をExcelで見える化しましょう
複数のIPアドレスへPingを実行し、 成功・失敗の結果をExcelに一覧表示します。 手作業で確認していた疎通確認を、VBAで効率化するためのサンプルです。
できること
- ExcelのA列に入力したIPアドレスへPingを実行する
- 疎通確認の成功・失敗をB列へ表示する
- 複数機器の通信状態を一覧で確認する
処理の流れ
flowchart TB Start[Excel VBA] Input[確認対象を入力] Run[Ping結果をExcelに一覧表示する] Result[結果を一覧表示] Copy[必要に応じて記録・共有] Start --> Input Input --> Run Run --> Result Result --> Copy
VBAコード
Sub CheckPingList()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim ipAddress As String
Dim command As String
Dim result As Long
Dim wsh As Object ' WScript.Shell用に追加
Set ws = ActiveSheet
Set wsh = CreateObject("WScript.Shell") ' オブジェクト生成
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Range("B1").Value = "確認結果"
For i = 2 To lastRow
ipAddress = Trim(ws.Cells(i, "A").Value)
If ipAddress <> "" Then
command = "ping -n 1 -w 1000 " & ipAddress
' 第2引数0は非表示、第3引数Trueは処理完了を待機して終了コードを取得
result = wsh.Run("cmd /c " & command, 0, True)
' 終了コード(result)が0なら成功、それ以外は失敗
If result = 0 Then
ws.Cells(i, "B").Value = "成功"
Else
ws.Cells(i, "B").Value = "失敗"
End If
Else
ws.Cells(i, "B").Value = "IP未入力"
End If
Next i
Set wsh = Nothing ' オブジェクト解放
MsgBox "確認が完了しました。", vbInformation
End Sub
入力例
| IPアドレス | 確認結果 |
|---|---|
| 192.168.1.1 | 成功 |
| 192.168.1.10 | 成功 |
| 192.168.1.20 | 失敗 |
注意点
本ページの内容は、自社または管理対象ネットワークの確認を目的としたものです。 許可のないネットワークに対して探索や調査を行わないでください。
Ping応答は、端末側のファイアウォール設定によって拒否される場合があります。 そのため、失敗と表示されても、必ずしも機器が存在しないとは限りません。
まとめ
- VBAを使うと複数IPへのPing結果をExcelに一覧表示できます
- 成功・失敗を一覧化することで、確認作業を効率化できます
- 管理対象ネットワークでのみ利用してください
ネットワーク設計・トラブル対応でお困りではありませんか?
株式会社リアライズがサポートいたします。
- ネットワーク設計・構築
- トラブル調査・改善
- 業務効率化・自動化
コードの解説
確認対象をA列から取得する
ExcelのA列に入力されたIPアドレスを、2行目から順番に読み取ります。
Pingコマンドを実行する
Windowsの
pingコマンドをVBAから実行し、指定したIPアドレスへ疎通確認を行います。終了コードで結果を判定する
コマンドの終了コードが
0の場合は成功、それ以外の場合は失敗として扱います。Excelへ結果を出力する
確認結果をB列へ出力し、複数IPの状態を一覧で確認できるようにします。