WNetCancelConnection2関数は、Windows APIの1つで、ネットワークより切断するために使用されます。
API宣言
ExcelVBAでは、WNetCancelConnection2関数を使用する前にAPI宣言を行う必要があります。API宣言を行うことで、ExcelVBAがWindowsAPI関数を認識することができるようになります。API宣言は次のように行います。
Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
解説
パラメータ | 内容 |
Lib | 使用する動的リンクライブラリ(DLL)の名前を指定します。ここでは "mpr.dll"となります。 |
Alias | API関数名を指定します。ここでは"WNetCancelConnection2A"という関数名が指定されています。 |
引数については以下の通りです。
引数 | 内容 |
lpName | 切断する共有フォルダのパスを指定します。 |
dwFlags | 切断オプションを指定します。通常は0を指定します。 |
fForce | 切断を強制するかどうかを指定します。True(-1)を指定すると強制的に切断されます。 |
使い方
WNetCancelConnection2関数を呼び出し、指定した共有フォルダの接続を解除します。
Dim result As Long
result = WNetCancelConnection2(folderPath, 0, True)
result = WNetCancelConnection2(folderPath, 0, True)
APIの戻り値として、共有フォルダの切断結果を示す数値が返されます。通常、成功した場合は0が返されます。失敗した場合はエラーコードが返されますので、切断の成功可否を判定する際に利用します。
プログラミング例
以下に、プログラミング例を紹介します。
Sub DisconnectSharedFolder()
Dim folderPath As String
folderPath = "\\server\sharedfolder\" ' 切断したい共有フォルダのパスを指定
Dim result As Long
result = WNetCancelConnection2(folderPath, 0, True) ' APIを呼び出して共有フォルダを切断
If result = 0 Then
MsgBox "共有フォルダの切断に成功しました。", vbInformation
Else
MsgBox "共有フォルダの切断に失敗しました。エラーコード: " & result, vbExclamation
End If
End Sub
Dim folderPath As String
folderPath = "\\server\sharedfolder\" ' 切断したい共有フォルダのパスを指定
Dim result As Long
result = WNetCancelConnection2(folderPath, 0, True) ' APIを呼び出して共有フォルダを切断
If result = 0 Then
MsgBox "共有フォルダの切断に成功しました。", vbInformation
Else
MsgBox "共有フォルダの切断に失敗しました。エラーコード: " & result, vbExclamation
End If
End Sub
このプログラムでは、"\server\sharedfolder"という共有フォルダを強制的に切断しています。切断が成功した場合は、成功メッセージが表示されます。切断に失敗した場合は、エラーコードが表示されます。
まとめ
WNetCancelConnection2関数を呼び出すことで、共有フォルダを切断することができます。正確なパス指定やエラー処理に注意しながら、共有フォルダの切断を行ってください。