VBAを使って、自分のパソコンのIPアドレスを取得したい場面は意外と多くあります。
たとえば、業務用マクロで実行端末を識別したいときや、ログ記録・アクセス制御のためにIP情報を残したいときなどです。
この記事では、WMI(Windows Management Instrumentation)を使って、IPアドレスを取得する方法をシンプルなコードでご紹介します。
コードはそのままコピペで動作しますので、ぜひ実際に試してみてください。
目次
構文
IPアドレスは WMI(Windows Management Instrumentation)
を使って取得できます。
具体的には Win32_NetworkAdapterConfiguration
クラスを利用します。
コード(コピペOK)
Sub GetIPAddress()
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim ip As String
' WMIサービスに接続(ローカルPCを指定)
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
' 有効なネットワークアダプタの情報を取得(IPEnabled = True のみ)
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
' 取得したアダプタ情報を1件ずつ処理
For Each objItem In colItems
' IPアドレスが存在する場合、取得(複数ある場合は最初の1つ)
If Not IsNull(objItem.IPAddress) Then
ip = objItem.IPAddress(0)
Exit For ' 最初の有効なIPが取れたらループ終了
End If
Next
' 結果をメッセージボックスで表示
MsgBox "IPアドレス: " & ip
End Sub
実行結果
実行すると、以下のようなメッセージボックスが表示されます。
