ネットワークの基礎から実務まで、順番に学べるメニューです。
VBAコラム
IPアドレス一覧を取得するVBA
ネットワーク機器の状態をExcelで見える化しましょう
VBAを使うと、指定したIPアドレス範囲に対してPing確認を行い、 応答の有無をExcelに一覧化できます。 ここでは、基本的な考え方とサンプルコードを整理します。
できること
- 指定したIPアドレス範囲へPingを送信する
- 応答がある機器をExcelに一覧化する
- 簡易的なネットワーク棚卸しに利用する
VBAコード
Sub PingNetworkToSheet()
Dim ws As Worksheet
Dim i As Long
Dim ip As String
Dim result As String
Dim row As Long
Set ws = ActiveSheet
ws.Cells.Clear
ws.Range("A1").Value = "IPアドレス"
ws.Range("B1").Value = "状態"
row = 2
For i = 1 To 254
ip = "192.168.1." & i
result = CreateObject("WScript.Shell") _
.Exec("ping -n 1 -w 300 " & ip) _
.StdOut.ReadAll
ws.Cells(row, 1).Value = ip
If InStr(result, "TTL=") > 0 Then
ws.Cells(row, 2).Value = "応答あり"
Else
ws.Cells(row, 2).Value = "応答なし"
End If
row = row + 1
Next i
End Sub
実行結果のイメージ
| IPアドレス | 状態 |
|---|---|
| 192.168.1.1 | 応答あり |
| 192.168.1.10 | 応答あり |
| 192.168.1.20 | 応答なし |
注意点
本ページの内容は、自社または管理対象ネットワークの確認を目的としたものです。 許可のないネットワークに対して探索や調査を行わないでください。
まとめ
- VBAを使うとPing確認をExcelに一覧化できます
- 応答の有無から簡易的な機器確認ができます
- 管理対象ネットワークでのみ利用してください
ネットワーク設計・トラブル対応でお困りではありませんか?
株式会社リアライズがサポートいたします。
- ネットワーク設計・構築
- トラブル調査・改善
- 業務効率化・自動化
コードの解説
IPアドレス範囲を指定する
ここでは `192.168.1.1` から `192.168.1.254` までを確認しています。
Pingを実行する
Windowsの `ping` コマンドをVBAから実行し、応答結果を取得します。
応答結果を判定する
結果に `TTL=` が含まれる場合は、応答ありとして扱います。
Excelへ出力する
IPアドレスと状態をシートへ一覧表示します。