• ベストアンサー

EXCEL VBAのDir関数について

ファイルサーバー上にあるEXCELファイルのVBAで 新規にファイルを作成する際にDIR関数で 同名ファイルの有無チェックを作成したいと考えています。 しかし以下のような処理で行うとチェックするフォルダが My documentsになってしまいファイルの有無チェックが うまくいきません。どのように書けば良いのでしょうか? ご教授ください。よろしくお願いします。 (情報不足でしたらご指摘ください。補足いたします) ChDir "\\サーバー\フォルダ\サブフォルダ" If(""=Dir(ファイル名))then '同名ファイル無 ファイルを保存する処理 Else msgbox "同名ファイルがあります" Endif 環境: サーバー  :WinNT4.0 クライアント:Win98SE or WinNT4.0 EXCEL2000 LAN接続(同一ドメイン)

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 チェックするフォルダも込みのフルパスで指定する方がいいと思いますよ。 チェックするフォルダは、常に同じなら定数化しておき、変更の可能性があるなら変数に代入して使用すればいいでしょう。 変数(または定数)は標準モジュールにでも宣言しておけばいいでしょう。 *****標準モジュール***** Public FolderName As String *****実際の処理***** FolderName = "\\サーバー\フォルダ\サブフォルダ\" If Dir(FolderName & "ファイル名") = "" Then '同名ファイル無   'ファイルを保存する処理 Else   MsgBox "同名ファイルがあります" End If

Fat01ton
質問者

お礼

ご回答ありがとうございます。 なるほど、フォルダを変数に代入しておけば それの変更があった場合でも便利ですね。 勉強になりました。 ありがとうございます。

その他の回答 (1)

  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.1

ChDirとDir関数が調べるフォルダは関係ないと思います。 If(""=Dir("\\サーバー\フォルダ\サブフォルダ\ファイル名"))then  など、Dir関数の引数にパスとファイル名を直接書けばよいのではないでしょうか。 そのように使ったことがあります。

Fat01ton
質問者

お礼

ご回答ありがとうございます。 ご指摘の方法にしたらできました。 Dir関数でパスとファイル名を 直接書けばいいとは気づきませんでした。 勉強になりました。

関連するQ&A