Realize,Inc.

VBAコラム

IPアドレス一覧を取得するVBA

ネットワーク機器の状態をExcelで見える化しましょう

VBAを使うと、指定したIPアドレス範囲に対してPing確認を行い、 応答の有無をExcelに一覧化できます。 ここでは、基本的な考え方とサンプルコードを整理します。

VBAでネットワークを確認するイメージ

できること

  • 指定した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

コードの解説

  1. IPアドレス範囲を指定する

    ここでは `192.168.1.1` から `192.168.1.254` までを確認しています。

  2. Pingを実行する

    Windowsの `ping` コマンドをVBAから実行し、応答結果を取得します。

  3. 応答結果を判定する

    結果に `TTL=` が含まれる場合は、応答ありとして扱います。

  4. Excelへ出力する

    IPアドレスと状態をシートへ一覧表示します。

実行結果のイメージ

IPアドレス 状態
192.168.1.1 応答あり
192.168.1.10 応答あり
192.168.1.20 応答なし

注意点

本ページの内容は、自社または管理対象ネットワークの確認を目的としたものです。 許可のないネットワークに対して探索や調査を行わないでください。

まとめ

  • VBAを使うとPing確認をExcelに一覧化できます
  • 応答の有無から簡易的な機器確認ができます
  • 管理対象ネットワークでのみ利用してください

ネットワーク設計・トラブル対応でお困りではありませんか?

株式会社リアライズがサポートいたします。

  • ネットワーク設計・構築
  • トラブル調査・改善
  • 業務効率化・自動化
お問い合わせはこちら