ネットワークの基礎から実務まで、順番に学べるメニューです。
VBAコラム
現在のPCのIP・サブネット・ゲートウェイを確認する
トラブル時の初期確認をExcel VBAで行いましょう
ネットワークトラブル時は、まず現在のPCに設定されている IPアドレス、サブネットマスク、デフォルトゲートウェイを確認することが重要です。 ここでは、WMIを使って現在のPCのネットワーク設定を取得するVBA例を整理します。
こんな場面で使う
- インターネットにつながらないときの初期確認
- IPアドレスやサブネットマスクの設定確認
- デフォルトゲートウェイの設定ミス確認
- 問い合わせ前に現在のPC情報を整理したいとき
確認する情報
flowchart TB Start[Excel VBA] WMI[WMIでネットワーク設定を取得] IP[IPアドレス] Subnet[サブネットマスク] Gateway[デフォルトゲートウェイ] Result[Excelへ一覧表示] Start --> WMI WMI --> IP WMI --> Subnet WMI --> Gateway IP --> Result Subnet --> Result Gateway --> Result
VBAコード
Sub GetCurrentPCNetworkInfo()
Dim ws As Worksheet
Dim objWMI As Object
Dim colItems As Object
Dim objItem As Object
Dim row As Long
Set ws = ActiveSheet
ws.Cells.Clear
ws.Range("A1").Value = "項目"
ws.Range("B1").Value = "値"
ws.Range("A1:B1").Interior.Color = RGB(220, 230, 241)
ws.Range("A1:B1").Font.Bold = True
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMI.ExecQuery( _
"Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
row = 2
For Each objItem In colItems
ws.Cells(row, 1).Value = "説明"
ws.Cells(row, 2).Value = objItem.Description
row = row + 1
If Not IsNull(objItem.IPAddress) Then
ws.Cells(row, 1).Value = "IPアドレス"
ws.Cells(row, 2).Value = objItem.IPAddress(0)
row = row + 1
End If
If Not IsNull(objItem.IPSubnet) Then
ws.Cells(row, 1).Value = "サブネットマスク"
ws.Cells(row, 2).Value = objItem.IPSubnet(0)
row = row + 1
End If
If Not IsNull(objItem.DefaultIPGateway) Then
ws.Cells(row, 1).Value = "デフォルトゲートウェイ"
ws.Cells(row, 2).Value = objItem.DefaultIPGateway(0)
row = row + 1
End If
If Not IsNull(objItem.DNSServerSearchOrder) Then
ws.Cells(row, 1).Value = "DNSサーバー"
ws.Cells(row, 2).Value = Join(objItem.DNSServerSearchOrder, ", ")
row = row + 1
End If
ws.Cells(row, 1).Value = "MACアドレス"
ws.Cells(row, 2).Value = objItem.MACAddress
row = row + 2
Next objItem
ws.Columns("A:B").AutoFit
MsgBox "現在のPCのネットワーク情報を取得しました。", vbInformation
End Sub
出力例
| 項目 | 値 |
|---|---|
| 説明 | Intel(R) Ethernet Connection |
| IPアドレス | 192.168.1.25 |
| サブネットマスク | 255.255.255.0 |
| デフォルトゲートウェイ | 192.168.1.1 |
| DNSサーバー | 192.168.1.1, 8.8.8.8 |
| MACアドレス | 00-11-22-33-44-55 |
注意点
PCに有線LANとWi-Fiの両方が有効になっている場合、 複数のネットワークアダプター情報が表示されることがあります。
取得結果にIPアドレスが表示されない場合は、 ネットワークアダプターが無効になっている、またはIPアドレスを取得できていない可能性があります。
まとめ
- VBAで現在のPCのIPアドレスを確認できます
- サブネットマスクやデフォルトゲートウェイも取得できます
- ネットワークトラブル時の初期確認に役立ちます
ネットワーク設計・トラブル対応でお困りではありませんか?
株式会社リアライズがサポートいたします。
- ネットワーク設計・構築
- トラブル調査・改善
- 業務効率化・自動化
コードの解説
WMIへ接続する
winmgmts:\\.\root\cimv2へ接続し、Windowsの管理情報を取得できるようにします。有効なネットワークアダプターを取得する
IPEnabled = Trueの条件で、IPアドレスが有効なネットワークアダプターだけを対象にします。IPアドレスを確認する
IPAddressから、現在PCに設定されているIPアドレスを取得します。サブネットとゲートウェイを確認する
IPSubnetとDefaultIPGatewayから、サブネットマスクとデフォルトゲートウェイを取得します。Excelへ出力する
取得した情報を項目名と値の形でExcelへ一覧表示します。