教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでWindowsAPIを使い共有フォルダを切断する方法

API宣言

WindowsAPI(関数)を使うためには、事前に宣言が必要となります。

Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long

解説

この宣言では、WNetCancelConnection2関数(共有フォルダの切断)が使用できる様になります。

プログラミング例

具体的なプログラミング例を紹介します。

Sub ネットワーク接続を切断()
    Dim 接続名 As String
    Dim 結果 As Long
    Dim フラグ As Long
    Dim 強制切断 As Long
    ' 切断したいネットワークの名前を入力(今回はXドライブを指定)
    接続名 = "X:"
    ' フラグと強制切断の設定
    フラグ = 0
    強制切断 = 1 ' 1は強制的に切断することを意味します
    ' WNetCancelConnection2関数を使って接続を切断します
    結果 = WNetCancelConnection2(接続名, フラグ, 強制切断)
    ' 結果を確認します
    If 結果 = 0 Then
        MsgBox "接続が正常に切断されました。"
    Else
        MsgBox "接続の切断に失敗しました。"
    End If
End Sub

上記のプログラムは、指定したドライブを切断する内容です。

まとめ

WindowsAPI関数:WNetCancelConnection2を使用し、共有フォルダを切断する方法について紹介しました。