フロッピーの有無確認について

解決


SHIN  2003-04-23 02:19:33  No: 106847

フロッピーへファイルを読み書きするためにフロッピーの有無を確認したいのですが、どのようにすれば良いのでしょうか?いろいろ検索しましたが見付かりませんでした。よろしくお願いします。


R&K  2003-04-23 03:02:48  No: 106848

スマートではありませんが、こんなのはどうでしょう?

    Dim FSO As Object
    Dim FDD As Object
    
    On Error Resume Next
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set FDD = FSO.GetDrive("A:") ' FDDがAドライブだと仮定してます
    Err.Clear
    Call FDD.FileSystem
    ' 71がディスクがないときのエラー番号のようです(未確認)
    If Err.Number <> 0 Then 
        MsgBox "Error"
    End If
        
    Set FDD = Nothing
    Set FSO = Nothing

もっとスマートなやり方があるのでしょうけど。


SHIN  2003-04-23 05:00:47  No: 106849

回答ありがとうございます。早速試してみましたが、ディスクの有無に関わらずにメッセージ「ERROR」が表示されます。Err.Number を見てみましたがディスクがあっても、なくても”438”となっていました。
上記のプログラムそのままでは駄目なのでしょうか?


oku  URL  2003-04-23 07:26:43  No: 106850

上記のままでは駄目ですね。
Call FDD.FileSystem  この命令自体間違ってるので、
絶対にエラーになります。
    Dim objDriveSystem  As Object
    Dim objDrive        As Object
    Dim strFileSystem   As String
    
    On Error Resume Next
    Set objDriveSystem = CreateObject("Scripting.FileSystemObject")
    Set objDrive = objDriveSystem.GetDrive("A:\")
    strFileSystem = objDrive.FileSystem
    If Err.Number <> 0 Then
        ' エラー番号とエラーに関する説明を表示
        MsgBox Err.Description & _
               vbExclamation
    End If
    On Error GoTo 0
    
    ' オブジェクトを解放
    Set objDriveSystem = Nothing
    Set objDrive = Nothing
こんな感じです。


NOTHING  2003-04-23 08:57:17  No: 106851

FDドライブが分かればいいんですか?  

Dim Fso As Object

  Set Fso = CreateObject("Scripting.FileSystemObject")

  For Each Drv In Fso.Drives

    If Drv.DriveType = 1 Then        '1
      
    FDドライブ名 = Drv.Path & "\"
    

    If irero = vbNo Then
    Set Fso = Nothing
    Exit Sub
    End If

    GoTo メディア
    
    Else
        Exit For
    End If         '2
    
    Else
    MsgBox "フロッピードライブが見つかりませんでした。" _
    & Chr(13) & "よって、現在のPC環境では電子印鑑は作成できません。" _
    & Chr(13) & "処理を中止します。", vbExclamation
    Set Fso = Nothing
    Exit Sub
    End If         '1
Next Drv


NOTHNIG  2003-04-23 09:05:02  No: 106852

すいません、自分のサンプルをコピぺーしていたら送信しちゃいました。

整理すると↓

Dim Fso As Object

  Set Fso = CreateObject("Scripting.FileSystemObject")

For Each Drv In Fso.Drives

    If Drv.DriveType = 1 Then        '1
    FDドライブ名 = Drv.Path & "\"
    Msgbox FDドライブ名
    Exit Sub
    End If

Next Drv

Msgbox "FDDは、NOTHING!"

間違ってたらすみません。僕も初心者ですから。^_^?


NOTHING  2003-04-23 09:29:56  No: 106853

すみません、寝ぼけてました。ディスクの方ですか?
書き散らしますが↓

メディア:

    If Drv.IsReady() = False Then
        
    irero = MsgBox("フロッピーディスクを挿入して下さい。" _
    & Chr(13) & "" _
    & Chr(13) & "準備が整いましたか?", vbQuestion + vbYesNo)

    If irero = vbNo Then
    Msgbox "入れないなら終了します。"
    Exit Sub
    End If

    GoTo メディア
    Else
    Msgbox "FDDは、入ってます。"
    End If

補足:Drvの求め方は、上記に書きました。

      SHINさん、間違ってたらごめんね。お互い、頑張りましょう。


SHIN  2003-04-23 11:38:37  No: 106854

皆さん、ありがとうございました。無事解決です。また何か有りましたら、よろしくお願いします!


satoru-i  2003-05-23 04:24:37  No: 106855

解決済みのネタで恐縮ですが,

Private Sub Command1_Click()
    Dim FSO As Object
    
    Set FSO = CreateObject("Scripting.filesystemobject")
    
    If FSO.folderexists("A:\")=True Then
    
    End If

End Sub

でも確認できます.(動作確認:VB6,WinXP)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加