• 締切済み

ディスクが挿入されていない時のエラー処理について

WIndows2000(sp2) VB6.0(sp) で開発中です。 if Dir$(Dir_Name, vbDirectory + vbNormal) <> "" Then ~ と、ディスクの状態を調べた時、ディスクが入っていないと、 次のようなメッセージボックスが表示されます。 「vb6.exe-ディスクがありません。  ドライブにディスクがありません。ディスクをドライブA:に挿入してください。  キャンセル,再実行,続行」 このメッセージが表示された後に、OnErrorの処理に入ります。 このメッセージを表示せず、直接OnErrorの処理に入るには どうしたらよいのでしょうか? ご存知でしたら教えてください。 よろしくお願いします。

みんなの回答

noname#11856
noname#11856
回答No.2

VBAからのオプション画面の全般タブで エラートラップが『エラー発生時に中断』になっている、とか?

noname#102878
noname#102878
回答No.1

どこに On Error を入れているのか書いてくれるとありがたいです。 Sub Test  On Error GoTo FDErr  If Dir$("A:\hoge\", vbDirectory + vbNormal) <> "" Then   MsgBox "入ってる"  End If  Exit Sub FDErr:  MsgBox "入ってない" End Sub これでちゃんとFDErrに飛びましたけど。 FileSystemObjectを使って簡単に調べるとすれば以下のようになります。 この場合は On Error の処理と言うわけではなく、「ドライブの準備ができているか」を調べる形になります。 準備ができていない場合のコードを書き足せばOKでしょか。 Sub test1()  Dim fso As Object  Dim myDrive As Object  Set fso = CreateObject("Scripting.FileSystemObject")  Set myDrive = fso.GetDrive("A:\")  If myDrive.DriveType = 1 Then   If myDrive.IsReady = True Then    MsgBox "ドライブの準備ができている"   Else    MsgBox "ドライブの準備ができていない"   End If  End If  Set myDrive = Nothing  Set fso = Nothing End Sub DriveType = 1 というのはリムーバブルディスク or CD-ROMドライブの場合です。 詳しくはMSDNライブラリをご覧ください。 http://www.microsoft.com/japan/msdn/library/ja/script56/html/jsproisready.asp VB6ならMSDNライブラリのCDもついてるよね。

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/script56/html/jsproisready.asp
noname#5252
質問者

補足

ご回答ありがとうございます。 On Errorは例に書いてくださったのと同じ位置に入っていますが、 3択のメッセージボックスが表示された後じゃないと、エラー処理 に飛びません。 環境がおかしいのでしょうか? 実は、以前自分で作った時点では、そんなメッセージは出ずに、 きちんとエラー処理に飛んでいたのですが、別の人が手を加えて から出るようになったようなのです・・・ しかし、出そうとしているわけではなく、Vb6.exeが勝手に出し てしまうというのが解せないのです。