- ベストアンサー
EXCEL VBAのDir関数について
ファイルサーバー上にあるEXCELファイルのVBAで 新規にファイルを作成する際にDIR関数で 同名ファイルの有無チェックを作成したいと考えています。 しかし以下のような処理で行うとチェックするフォルダが My documentsになってしまいファイルの有無チェックが うまくいきません。どのように書けば良いのでしょうか? ご教授ください。よろしくお願いします。 (情報不足でしたらご指摘ください。補足いたします) ChDir "\\サーバー\フォルダ\サブフォルダ" If(""=Dir(ファイル名))then '同名ファイル無 ファイルを保存する処理 Else msgbox "同名ファイルがあります" Endif 環境: サーバー :WinNT4.0 クライアント:Win98SE or WinNT4.0 EXCEL2000 LAN接続(同一ドメイン)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 チェックするフォルダも込みのフルパスで指定する方がいいと思いますよ。 チェックするフォルダは、常に同じなら定数化しておき、変更の可能性があるなら変数に代入して使用すればいいでしょう。 変数(または定数)は標準モジュールにでも宣言しておけばいいでしょう。 *****標準モジュール***** Public FolderName As String *****実際の処理***** FolderName = "\\サーバー\フォルダ\サブフォルダ\" If Dir(FolderName & "ファイル名") = "" Then '同名ファイル無 'ファイルを保存する処理 Else MsgBox "同名ファイルがあります" End If
その他の回答 (1)
- tamazo-
- ベストアンサー率60% (35/58)
ChDirとDir関数が調べるフォルダは関係ないと思います。 If(""=Dir("\\サーバー\フォルダ\サブフォルダ\ファイル名"))then など、Dir関数の引数にパスとファイル名を直接書けばよいのではないでしょうか。 そのように使ったことがあります。
お礼
ご回答ありがとうございます。 ご指摘の方法にしたらできました。 Dir関数でパスとファイル名を 直接書けばいいとは気づきませんでした。 勉強になりました。
お礼
ご回答ありがとうございます。 なるほど、フォルダを変数に代入しておけば それの変更があった場合でも便利ですね。 勉強になりました。 ありがとうございます。