API宣言
WindowsAPI(関数)を使うためには、事前に宣言が必要となります。
Private Declare PtrSafe Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (ByRef lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
解説
この宣言では、WNetAddConnection2関数(共有フォルダへ接続)が使用できる様になります。
プログラミング例
具体的なプログラミング例を紹介します。
Sub ネットワークドライブを接続する()
Dim ネットリソース As NETRESOURCE
Dim 結果 As Long
' ネットワークリソースの設定
With ネットリソース
.dwScope = vbNull
.dwType = vbNull
.dwDisplayType = vbNull
.dwUsage = vbNull
' ローカルドライブ名(今回はXドライブを指定)
.lpLocalName = "X:"
' ネットワークパス(ここには接続するパスを指定)
.lpRemoteName = "\\サーバー名\共有フォルダ"
.lpComment = vbNullString
.lpProvider = vbNullString
End With
' WNetAddConnection2関数の呼び出し
結果 = WNetAddConnection2(ネットリソース, vbNullString, vbNullString, 0)
' 結果をチェック
If 結果 = 0 Then
MsgBox "ネットワークドライブが正常に接続されました。"
Else
MsgBox "ネットワークドライブの接続に失敗しました。エラーコード: " & 結果
End If
End Sub
Dim ネットリソース As NETRESOURCE
Dim 結果 As Long
' ネットワークリソースの設定
With ネットリソース
.dwScope = vbNull
.dwType = vbNull
.dwDisplayType = vbNull
.dwUsage = vbNull
' ローカルドライブ名(今回はXドライブを指定)
.lpLocalName = "X:"
' ネットワークパス(ここには接続するパスを指定)
.lpRemoteName = "\\サーバー名\共有フォルダ"
.lpComment = vbNullString
.lpProvider = vbNullString
End With
' WNetAddConnection2関数の呼び出し
結果 = WNetAddConnection2(ネットリソース, vbNullString, vbNullString, 0)
' 結果をチェック
If 結果 = 0 Then
MsgBox "ネットワークドライブが正常に接続されました。"
Else
MsgBox "ネットワークドライブの接続に失敗しました。エラーコード: " & 結果
End If
End Sub
上記のプログラムは、指定したネットワークドライブが「X:」として接続されます。
まとめ
WindowsAPI関数:WNetAddConnection2を使用し、共有フォルダへ接続する方法について紹介しました。