- ベストアンサー
VB6 Dir関数で52エラー発生
いつもお世話になっています。 最近になって、VB6のDir関数を実行するとき、実行時エラー52が発生します。 既存のプログラムに、メール送信機能を追加しました。 このとき、BASP21をインストールしました。 これ以外のプログラムのインストールはWindowsUpdate以外はかかっていません。 皆さん、このような現象は体験されていますでしょうか? 解決策をご存知の方、ご教授願います。 BASP21が悪いのかと思い、アンインストールしましたが、現象は再現します。 VB6の再インストールをしましたが、再現します。 以上よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私も先週末、全く同じ内容 = Dir 関数で 52 エラーが、立て続けに 2 件出て、焦りまくった者です。 自分のところの場合、Dir 関数をフォルダ or ファイルの存在チェックに 用いていたのですが… 引数にネットワーク越しのパス = \\+コンピュータ名 or IP アドレスから 始まる文字列を指定すると、場合によって、エラーになりました。 通常、Dir 関数は、引数で渡したフォルダ or ファイルが存在しないと 空白を戻しますが… 引数に、ネットワーク越しの共有フォルダ or ファイルを指定すると アクセス可能な状態である場合は良いのですが、そうではない場合、 52 エラーになるようです。 また、ローカルのパスでも、パスとして無効な文字列だと、これまた 場合によって、52 エラーになる場合があります。(ただ、ならない場合も あるんですよね~) C:: ⇒ 52 エラー C\\ ⇒ 正常(空白を戻す) FileSystemObject の FileExists、FolderExists メソッドだと、 上記のようなことはないので、現在、置き換え中です。 nobupapa さんの状況には当てはまらないかもしれませんが、 一例まで。(-_-)b
その他の回答 (2)
- isomaru
- ベストアンサー率33% (1/3)
はじめまして コードを拝見しましたがc_sINIPATHはディレクトリではないでしょうか? その有無を見るのなら If Dir(App.Path & "\c_sINIPATH, vbDirectory) = "" Then というようにすればいいと思います、 Dir関数の初期値は0:通常ファイルなので、 ファイルの有無を見るのであれば、ファイル名まで記述してください。
お礼
はじめまして 回答ありがとうございます。 じつは、別件、至急案件があり、まだANo.2さんの処理を試していません。 結果が出次第、ご報告させてもらいます。
- Hayashi_Trek
- ベストアンサー率44% (366/818)
実行時エラー52 の内容は、 「ファイル名またはファイル番号が不正です。」 なので、 ファイル番号を、FreeFile関数を使わずに固定にしていませんか?
お礼
ご回答ありがとうございます。 表題のとおりDir関数でエラーが発生しています。 コードは以下のとおりです。 If Dir(App.Path & "\" & c_sINIPATH) = "" Then Exit Function End If c_sINIPATHにはファイル名が格納されています。
お礼
こんにちは 回答ありがとうございます。 同じロジックを、別のPC(同一ハブの隣のPC)で試したところ、エラーが出ませんでした。 Masu-Chinさんの指摘された、ネットワーク越しが引っかかりますね ケーブル変えてみようかな? やはり、PC固有の問題でしょうか? もう一度、VBをインストールしてみようかと考えています。 ちょっと、先になりますが。 結果がでたら、報告します。