プロが教えるわが家の防犯対策術!

いつもお世話になっています。
最近になって、VB6のDir関数を実行するとき、実行時エラー52が発生します。
既存のプログラムに、メール送信機能を追加しました。
このとき、BASP21をインストールしました。
これ以外のプログラムのインストールはWindowsUpdate以外はかかっていません。
皆さん、このような現象は体験されていますでしょうか?
解決策をご存知の方、ご教授願います。
BASP21が悪いのかと思い、アンインストールしましたが、現象は再現します。
VB6の再インストールをしましたが、再現します。
以上よろしくお願いします。

A 回答 (3件)

私も先週末、全く同じ内容 = Dir 関数で 52 エラーが、立て続けに


2 件出て、焦りまくった者です。

自分のところの場合、Dir 関数をフォルダ or ファイルの存在チェックに
用いていたのですが…

引数にネットワーク越しのパス = \\+コンピュータ名 or IP アドレスから
始まる文字列を指定すると、場合によって、エラーになりました。

通常、Dir 関数は、引数で渡したフォルダ or ファイルが存在しないと
空白を戻しますが…

引数に、ネットワーク越しの共有フォルダ or ファイルを指定すると
アクセス可能な状態である場合は良いのですが、そうではない場合、
52 エラーになるようです。

また、ローカルのパスでも、パスとして無効な文字列だと、これまた
場合によって、52 エラーになる場合があります。(ただ、ならない場合も
あるんですよね~)

C:: ⇒ 52 エラー
C\\ ⇒ 正常(空白を戻す)

FileSystemObject の FileExists、FolderExists メソッドだと、
上記のようなことはないので、現在、置き換え中です。

nobupapa さんの状況には当てはまらないかもしれませんが、
一例まで。(-_-)b
    • good
    • 0
この回答へのお礼

こんにちは
回答ありがとうございます。
同じロジックを、別のPC(同一ハブの隣のPC)で試したところ、エラーが出ませんでした。
Masu-Chinさんの指摘された、ネットワーク越しが引っかかりますね
ケーブル変えてみようかな?

やはり、PC固有の問題でしょうか?
もう一度、VBをインストールしてみようかと考えています。
ちょっと、先になりますが。
結果がでたら、報告します。

お礼日時:2007/05/22 19:18

はじめまして


コードを拝見しましたがc_sINIPATHはディレクトリではないでしょうか?
その有無を見るのなら
If Dir(App.Path & "\c_sINIPATH, vbDirectory) = "" Then
というようにすればいいと思います、
Dir関数の初期値は0:通常ファイルなので、
ファイルの有無を見るのであれば、ファイル名まで記述してください。
    • good
    • 2
この回答へのお礼

はじめまして
回答ありがとうございます。
じつは、別件、至急案件があり、まだANo.2さんの処理を試していません。
結果が出次第、ご報告させてもらいます。

お礼日時:2007/05/22 19:13

実行時エラー52 の内容は、


「ファイル名またはファイル番号が不正です。」
なので、
ファイル番号を、FreeFile関数を使わずに固定にしていませんか?
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
表題のとおりDir関数でエラーが発生しています。
コードは以下のとおりです。

If Dir(App.Path & "\" & c_sINIPATH) = "" Then
Exit Function
End If
c_sINIPATHにはファイル名が格納されています。

お礼日時:2007/05/17 09:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A