VBAプログラム(エクセル)を更新しています。起動時に、プログラムは以下を使用して、オフィス ファイル サーバー上にあるディレクトリを見つけることができるかどうかを確認します。
FileSystemObject.FolderExists("\\servername\path")
これが見つからない場合、プログラムはオフライン モードに切り替わり、その出力をファイル サーバーに直接保存するのではなく、(後で転送するために) ローカル ハード ディスクに保存します。
これは問題なく動作します。コンピューターがパスに到達できる場合は非常に高速ですが、FolderExists への呼び出しが完了するまで (最大 1 分) 時間がかかることがあります。特に、ネットワーク接続が開いているが、必要なパスが存在しません (つまり、他の LAN に接続しています)。
私の質問:
VBA を使用してネットワーク パスの存在を確認する、より迅速で適切な方法はありますか?
ユーザーがオフィスにいないために成功できないことがわかっているときに、FolderExists() によって行われた検索をユーザーにキャンセルさせる方法はありますか。つまり、FolderExists() (またはそのための他の関数呼び出し) を途中で終了する方法はありますか?
ユーザーの入力をできるだけ少なくしたいので、そもそもオフィスにいるかいないかをユーザーに尋ねるだけでなく、チェックが自動的に行われます。