List all Network Adapters using Excel VBA
Excel VBA code in this page can list all the network adapters in your computer along with its complete attributes.
Network adapters are used to connect a computer to a LAN (Local Area Network) or Internet. This can be done by wired (Ethernet) or a wireless connection. The network adapter is the connection point between computer & network.
One of the well known attribute of a network adapter is MAC address. ( i.e.,Media Access Control Address).
Including this, we can retrieve about 40 attributes of a network adapter from this below code.
VBA code to Get Network Adapter Name, MAC, Connection Status
Create a new workbook, open VB editor by pressng Alt + F11. Insert new module and copy paste the below code into the new module.
Then press F5. this code will fetch all the 40 attributes of each network adapters in your machine and list them in sheet 1.
Sub Get_All_Network_Adapter_Details() Dim iSh As Worksheet, i As Integer 'Get All Network Adapter Details Set iSh = ThisWorkbook.Sheets(1) Set wmi = GetObject("winmgmts:root\CIMV2") Set adapters = wmi.ExecQuery("Select * from Win32_NetworkAdapter") 'Attributes of Each Adapter iSh.Cells(1, 1) = "AdapterType" iSh.Cells(1, 2) = "AdapterTypeID" iSh.Cells(1, 3) = "AutoSense" iSh.Cells(1, 4) = "Availability" iSh.Cells(1, 5) = "Caption" iSh.Cells(1, 6) = "ConfigManagerErrorCode" iSh.Cells(1, 7) = "ConfigManagerUserConfig" iSh.Cells(1, 8) = "CreationClassName" iSh.Cells(1, 9) = "Description" iSh.Cells(1, 10) = "DeviceID" iSh.Cells(1, 11) = "ErrorCleared" iSh.Cells(1, 12) = "ErrorDescription" iSh.Cells(1, 13) = "GUID" iSh.Cells(1, 14) = "Index" iSh.Cells(1, 15) = "InstallDate" iSh.Cells(1, 16) = "Installed" iSh.Cells(1, 17) = "InterfaceIndex" iSh.Cells(1, 18) = "LastErrorCode" iSh.Cells(1, 19) = "MACAddress" iSh.Cells(1, 20) = "Manufacturer" iSh.Cells(1, 21) = "MaxNumberControlled" iSh.Cells(1, 22) = "MaxSpeed" iSh.Cells(1, 23) = "Name" iSh.Cells(1, 24) = "NetConnectionID" iSh.Cells(1, 25) = "NetConnectionStatus" iSh.Cells(1, 26) = "NetEnabled" iSh.Cells(1, 27) = "NetworkAddresses" iSh.Cells(1, 28) = "PermanentAddress" iSh.Cells(1, 29) = "PhysicalAdapter" iSh.Cells(1, 30) = "PNPDeviceID" iSh.Cells(1, 31) = "PowerManagementCapabilities" iSh.Cells(1, 32) = "PowerManagementSupported" iSh.Cells(1, 33) = "ProductName" iSh.Cells(1, 34) = "ServiceName" iSh.Cells(1, 35) = "Speed" iSh.Cells(1, 36) = "Status" iSh.Cells(1, 37) = "StatusInfo" iSh.Cells(1, 38) = "SystemCreationClassName" iSh.Cells(1, 39) = "SystemName" iSh.Cells(1, 40) = "TimeOfLastReset" 'Get Details of Each Network Adapter Attribute i = 2 For Each adapter In adapters With adapter iSh.Cells(i, 1) = .AdapterType iSh.Cells(i, 2) = .AdapterTypeID iSh.Cells(i, 3) = .AutoSense iSh.Cells(i, 4) = .Availability iSh.Cells(i, 5) = .Caption iSh.Cells(i, 6) = .ConfigManagerErrorCode iSh.Cells(i, 7) = .ConfigManagerUserConfig iSh.Cells(i, 8) = .CreationClassName iSh.Cells(i, 9) = .Description iSh.Cells(i, 10) = .DeviceID iSh.Cells(i, 11) = .ErrorCleared iSh.Cells(i, 12) = .ErrorDescription iSh.Cells(i, 13) = .GUID iSh.Cells(i, 14) = .Index iSh.Cells(i, 15) = .InstallDate iSh.Cells(i, 16) = .Installed iSh.Cells(i, 17) = .InterfaceIndex iSh.Cells(i, 18) = .LastErrorCode iSh.Cells(i, 19) = .MACAddress iSh.Cells(i, 20) = .Manufacturer iSh.Cells(i, 21) = .MaxNumberControlled iSh.Cells(i, 22) = .MaxSpeed iSh.Cells(i, 23) = .Name iSh.Cells(i, 24) = .NetConnectionID iSh.Cells(i, 25) = .NetConnectionStatus iSh.Cells(i, 26) = .NetEnabled iSh.Cells(i, 27) = .NetworkAddresses iSh.Cells(i, 28) = .PermanentAddress iSh.Cells(i, 29) = .PhysicalAdapter iSh.Cells(i, 30) = .PNPDeviceID iSh.Cells(i, 31) = .PowerManagementCapabilities iSh.Cells(i, 32) = .PowerManagementSupported iSh.Cells(i, 33) = .ProductName iSh.Cells(i, 34) = .ServiceName iSh.Cells(i, 35) = .Speed iSh.Cells(i, 36) = .Status iSh.Cells(i, 37) = .StatusInfo iSh.Cells(i, 38) = .SystemCreationClassName iSh.Cells(i, 39) = .SystemName iSh.Cells(i, 40) = .TimeOfLastReset 'adapter.disable() 'adapter.enable() End With i = i + 1 Next End Sub
Notice there are 2 commented lines towards the end of the code. These commented code can be used to enable or disable a network adapter in your machine.
What we are going to achieve here can also be displayed using a one line Command prompt command. open a cmd promt and try this command as well.
wmic nic get AdapterType, Name, MACAddress
For example: You can choose to disable/switch off wired connection and enable the Wireless connection alone.
Attribute list source: The list of all 40 attributes of network adapter is taken from this link.
All possible values for each attribute and their meaning can be found in this link.