会社のLANではなくWifiで実行すると時間がかかるマクロを実行する前にユーザーに警告する必要があります。Excel VBA - インターネットに接続されているかどうかを確認します.WiFiまたはイーサネットを経由している場合
私は、次のコードを発見した:
Public Declare Function InternetGetConnectedState _
Lib "wininet.dll" (lpdwFlags As Long, _
ByVal dwReserved As Long) As Boolean
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" Alias "InternetGetConnectedStateExA" (_
ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, _
ByVal dwNameLen As Long, _
ByVal dwReserved As Long) As Long
'Local system uses a modem to connect to the Internet.
Private Const INTERNET_CONNECTION_MODEM As Long = &H1
'Local system uses a LAN to connect to the Internet.
Private Const INTERNET_CONNECTION_LAN As Long = &H2
'Local system uses a proxy server to connect to the Internet.
Private Const INTERNET_CONNECTION_PROXY As Long = &H4
The following API functions are used
Function IsConnected() As Boolean
Dim Stat As Long
IsConnected = (InternetGetConnectedState(Stat, 0&) <> 0)
If IsConnected And INTERNET_CONNECTION_LAN Then
MsgBox "Lan Connection"
ElseIf IsConnected And INTERNET_CONNECTION_MODEM Then
MsgBox "Modem Connection"
ElseIf IsConnected And INTERNET_CONNECTION_PROXY Then
MsgBox "Proxy"
End If
End Function
の場合:
Checking for internet connection using VBA
次のコードスニペットは、インターネット接続や接続 のも種類を確認するためにAPI関数を使用しています接続されているかどうかを知りたい場合は、次のように使用できます。
CBool(InternetGetConnectedStateEx(0, vbNullString, 512, 0&))
これは私がLANに接続しているが、私はWIFIの午前またはLANに接続されているかどうかので、それがない私に語りました。私はそれらを区別する必要があります。
どうすればいいですか?
乾杯
どうやって行ったのですか?あなたはそれを働かせましたか? – KyloRen
@KyloRen - あなたのソリューションはうまくいったと思います!ありがとうございました。以下のコメントを参照 – Nick