VBA Check if Computer is Connected to Network
Is your Excel or other Ms office application is fetching data from Internet?
Do You also wish to check if the computer is having an active network connection? – before fetching data from web.
Then this code will help You.
We are going to use the Windows API function ‘InternetGetConnectedState’. The official documentation of this function can be found in this link.
Lets get to the actual code.
VBA Code – Check for active Internet Connection
The above mentioned WINAPI function not only detects Network connection, it also determines what is the type of connection available – LAN, Proxy or Modem etc.,
Now, copy paste this code to a new module in your Excel VBA project.
Press F5 by switching the LAN ON & OFF to check if the status returned is good enough for your needs.
'Windows API Function
'To check if Computer is connected to Internet
Private Declare Function InternetGetConnectedState Lib "wininet.dll" ( _
ByRef lpdwFlags As Long, _
ByVal dwReserved As Long) _
As Boolean
'Connection Type (LAN, MODEM, PROXY)
Const INTERNET_CONNECTION_LAN = &H2
Const INTERNET_CONNECTION_MODEM = &H1
Const INTERNET_CONNECTION_PROXY = &H4
'VBA Code To check if Internet is ON/OFF
Sub Check_If_Internet_Is_Connected()
Dim lConnectionFlag As Long
If InternetGetConnectedState(lConnectionFlag, 0) = True Then
'Computer is Connected to Network
'Now Find Type of Connection
'LAN - Connection ON
If lConnectionFlag And INTERNET_CONNECTION_LAN Then
retMsg = "Connected to LAN"
'MODEM - Connection ON
ElseIf lConnectionFlag And INTERNET_CONNECTION_MODEM Then
retMsg = "Connected using MODEM"
'PROXY - Connection ON
ElseIf lConnectionFlag And INTERNET_CONNECTION_PROXY Then
'Proxy connection.
retMsg = "Connection thru Proxy"
End If
Else
'LAN/Internet/Network is OFF
retMsg = "Computer Not Connected to Network/Internet - Check LAN Connection"
End If
'Display Status Message
MsgBox retMsg
End Sub
If this code is being used in a 64 bit machine, refer this document on how to change it accordingly.
There is not much of code changes here. You just have to change the declaration of the Windows API function at the first line of the code.