【Excel VBA】カレントディレクトリの変更 [ネットワークフォルダへ変更]

VBAでフォルダを開くとき、カレントディレクトリを変更することがあると思いますが、ローカルフォルダに変更する場合はChdirで変更可能ですが、ネットワークフォルダの場合、Chdirで変更できません。

ネットワークフォルダを設定する方法は、下記の2つのやり方で設定が可能です。

APIを使う場合

API(Application Programming Interface)は宣言部分が32bit版と64bit版では書き方が変わります。

<32bit版>

'---------------------宣言部分----------------------
Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" _
(ByVal CurrentDir As String) As Long
'--------------------------------------------------

Sub Sample1()
    SetCurrentDirectory  "\\NetWork\Path01"
    MsgBox CurDir
End Sub

<64bit版>

'---------------------宣言部分----------------------
Private Declare PtrSafe Function SetCurrentDirectory Lib "kernel32" Alias _
"SetCurrentDirectoryA"
(ByVal lpPathName As String) As Long
'--------------------------------------------------

WSH(Windows Script Host)を使う場合

Sub Sample2()
    With CreateObject("WScript.Shell")
        .CurrentDirectory = "\\NetWork\Path01"
    End With
    MsgBox CurDir
End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA