フロッピーへファイルを読み書きするためにフロッピーの有無を確認したいのですが、どのようにすれば良いのでしょうか?いろいろ検索しましたが見付かりませんでした。よろしくお願いします。
スマートではありませんが、こんなのはどうでしょう?
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
もっとスマートなやり方があるのでしょうけど。
回答ありがとうございます。早速試してみましたが、ディスクの有無に関わらずにメッセージ「ERROR」が表示されます。Err.Number を見てみましたがディスクがあっても、なくても”438”となっていました。
上記のプログラムそのままでは駄目なのでしょうか?
上記のままでは駄目ですね。
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
こんな感じです。
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
すいません、自分のサンプルをコピぺーしていたら送信しちゃいました。
整理すると↓
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!"
間違ってたらすみません。僕も初心者ですから。^_^?
すみません、寝ぼけてました。ディスクの方ですか?
書き散らしますが↓
メディア:
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さん、間違ってたらごめんね。お互い、頑張りましょう。
皆さん、ありがとうございました。無事解決です。また何か有りましたら、よろしくお願いします!
解決済みのネタで恐縮ですが,
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)
ツイート | ![]() |