仕事で使うファイルは、ファイルサーバーに格納されていると思います。ファイルを開くときには、こんなネットワークパスでアクセスするのではないでしょうか?(\\server\share\organization\dept\rs-techdev\sample.xlmx)
VBAでChDir関数を利用してネットワークパスへ移動しようとしても正しく移動できません。今回はこの問題を解決する方法を紹介します。
WshShellクラスのCurrentDirectoryで解決する
一番簡単な方法は、WSHのWshShell:CurrentDirectoryを使うことです。CurrentDirectoryはプロパティなので、先ほどのネットワークパス(\\server\share\organization\dept\rs-techdev)を代入することで、パスを変更することができます。パスさえ変更できれば、あとはいつも通りにファイル操作が可能となります。
サンプルプログラムを動かすには参照設定が必要です。「Windows Script Host Object Model」を事前に選択しておいてください。
サンプルプログラム
Option Explicit
Sub sample()
'Dim sh As Object
'Set sh = CreateObject("WScript.Shell")
'参照設定なしで動かす場合はコメントを外す
Dim sh As New IWshRuntimeLibrary.WshShell
sh.CurrentDirectory = "\\server\share\organization\dept\rs-techde"
Debug.Print sh.CurrentDirectory '\\server\share\organization\dept\rs-techde
Debug.Print CurDir '\\server\share\organization\dept\rs-techde
Application.GetOpenFilename '初期表示フォルダがネットワークパス
End Sub