- 締切済み
ディスクが挿入されていない時のエラー処理について
WIndows2000(sp2) VB6.0(sp) で開発中です。 if Dir$(Dir_Name, vbDirectory + vbNormal) <> "" Then ~ と、ディスクの状態を調べた時、ディスクが入っていないと、 次のようなメッセージボックスが表示されます。 「vb6.exe-ディスクがありません。 ドライブにディスクがありません。ディスクをドライブA:に挿入してください。 キャンセル,再実行,続行」 このメッセージが表示された後に、OnErrorの処理に入ります。 このメッセージを表示せず、直接OnErrorの処理に入るには どうしたらよいのでしょうか? ご存知でしたら教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
VBAからのオプション画面の全般タブで エラートラップが『エラー発生時に中断』になっている、とか?
どこに 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もついてるよね。
補足
ご回答ありがとうございます。 On Errorは例に書いてくださったのと同じ位置に入っていますが、 3択のメッセージボックスが表示された後じゃないと、エラー処理 に飛びません。 環境がおかしいのでしょうか? 実は、以前自分で作った時点では、そんなメッセージは出ずに、 きちんとエラー処理に飛んでいたのですが、別の人が手を加えて から出るようになったようなのです・・・ しかし、出そうとしているわけではなく、Vb6.exeが勝手に出し てしまうというのが解せないのです。