OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

CDドライブ

  • すぐに回答を!
  • 質問No.184434
  • 閲覧数41
  • ありがとう数4
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 50% (8/16)

CDROMドライブのパス名を速く発見する。
プログラムを教えてください。
宜しくお願いします。

ドライブ名がQ,F,D・・・・とどこにあるかと言う事です。
通報する
  • 回答数6
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.6
レベル12

ベストアンサー率 65% (276/422)

すいません。レスがおくれました。

>VBAの方でこの方法では使用できないため
使えますよ。
Sub Main
より上の部分はプログラムの先頭に記述する必要があります。
その部分で引っかかったのではないでしょうか?
もしだめなら、エクセルかアクセスかわかりませんが、そのバージョンをおしえてください。

>※CD-ROMとCD-R/Wのドライブの区別はつかないのでしょうか?
この質問は、別スレッドにて行いましょう。
ぼく自身それは未経験ですので、その方が多くの答えが期待できると思います。
お礼コメント
kakuunn

お礼率 50% (8/16)

ありがとうございました。
参考になりました。
投稿日時 - 2002-01-07 19:52:20
-PR-
-PR-

その他の回答 (全5件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

普段使用しているコードがあるので載せておきますね。 複数の同タイプのドライブが存在していても、取得可能です。 Option Explicit Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Lon ...続きを読む
普段使用しているコードがあるので載せておきますね。
複数の同タイプのドライブが存在していても、取得可能です。

Option Explicit

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

'ドライブタイプの定数
Public Enum DRV_TYPE
  DRV_UNKNOWN = &H0    'ドライブの判別が出来ない
  DRV_NO_ROOT_DIR = &H1  '指定のルートディレクトリが存在しない。
  DRV_REMOVABLE = &H2   '交換可能なドライブ (フロッピーディスク等)
  DRV_FIXED = &H3     '固定ドライブ
  DRV_REMOTE = &H4    'ネットワークドライブ
  DRV_CDROM = &H5     'CD-ROM
  DRV_RAMDISK = &H6    'RAMディスク
End Enum

Sub Main()
  Dim cPath  As Variant
  Dim i    As Long
  cPath = DriveGet(DRV_CDROM)
  If IsEmpty(cPath) Then
    Debug.Print "ドライブ認識できず"
  Else
    For i = LBound(cPath) To UBound(cPath)
      Debug.Print "CD_Path=["; cPath(i) & "]"
    Next i
  End If

End Sub

Public Function DriveGet(inDriveType As DRV_TYPE) As Variant
  Dim wkDriveLoop As Integer
  Dim lngRetValue As Long
  Dim DrvChar   As String
  Dim wkVal()   As Variant
  Dim wkCnt    As Integer
  
  
  wkCnt = 0
  For wkDriveLoop = 65 To 90
    DrvChar = Chr$(wkDriveLoop) & ":\"
    lngRetValue = GetDriveType(DrvChar)
    
    If (lngRetValue = inDriveType) Then
      ReDim Preserve wkVal(wkCnt) As Variant
      wkVal(wkCnt) = DrvChar
      wkCnt = wkCnt + 1
    End If
  Next wkDriveLoop
  If wkCnt > 0 Then DriveGet = wkVal
End Function
お礼コメント
kakuunn

お礼率 50% (8/16)

良回答ありがとうございます。
追加お願いしたいのですが、
VBAの方でこの方法では使用できないため
そちらの方も教えていただきたいのですが。

※CD-ROMとCD-R/Wのドライブの区別はつかないの
でしょうか?
投稿日時 - 2001-12-13 17:31:09


  • 回答No.2
レベル9

ベストアンサー率 76% (33/43)

APIを使わない方法で一つ・・・(^ ^) Sub SerchCDRomDrive()  Dim fs, d, dc  Set fs = CreateObject("Scripting.FileSystemObject")  Set dc = fs.Drives  For Each d In dc   If d.DriveType = 4 Then     ...続きを読む
APIを使わない方法で一つ・・・(^ ^)

Sub SerchCDRomDrive()

 Dim fs, d, dc

 Set fs = CreateObject("Scripting.FileSystemObject")
 Set dc = fs.Drives

 For Each d In dc
  If d.DriveType = 4 Then
   Debug.Print d
  End If
 Next d

End Sub

ちなみにDriveTypeは

0:不明
1:リムーバブル ディスク
2:ハード ディスク
3:ネットワーク ドライブ
4:CD-ROM
5:RAM ディスク

と、なりますm(_ _)m
お礼コメント
kakuunn

お礼率 50% (8/16)

大変わかりやすい回答ありがとうございます。

※CD-ROMとCD-R/Wのドライブの区別はつかないの
でしょうか?
投稿日時 - 2001-12-13 19:11:51
  • 回答No.3
レベル12

ベストアンサー率 65% (276/422)

Watapo3さんの回答だけでなく FileSystemObject を使用した回答全てへの補足です。(攻撃しているわけではありませんので、勘弁してください。。。) ファイルシステムオブジェクトは、IEの入っているバージョンに影響されます。もし純粋なWIN95を使用していたら、使用不可です。 (今の時代では少ないでしょうが。。。)
Watapo3さんの回答だけでなく FileSystemObject を使用した回答全てへの補足です。(攻撃しているわけではありませんので、勘弁してください。。。)

ファイルシステムオブジェクトは、IEの入っているバージョンに影響されます。もし純粋なWIN95を使用していたら、使用不可です。
(今の時代では少ないでしょうが。。。)
  • 回答No.4
レベル9

ベストアンサー率 76% (33/43)

TAGOSAKU7さん。純粋にありがとうございます。m(_ _)m 私も、何に付随しているものかは知らなかったもので感謝いたします。 で、横に少し反れてしまうかもしれませんが、 >IEのバージョンに影響される と言う事は、具体的にはどのような事でしょうか? 単にIEが入っていなければ使えないのか・・・これは当然だと思いますが・・・(^ ^; 他にIEのバージョンによって動作に影響が ...続きを読む
TAGOSAKU7さん。純粋にありがとうございます。m(_ _)m

私も、何に付随しているものかは知らなかったもので感謝いたします。
で、横に少し反れてしまうかもしれませんが、
>IEのバージョンに影響される
と言う事は、具体的にはどのような事でしょうか?

単にIEが入っていなければ使えないのか・・・これは当然だと思いますが・・・(^ ^;

他にIEのバージョンによって動作に影響が出てしまうのでしょうか?
補足をよろしく御願いいたします。m(_ _)m
  • 回答No.5
レベル12

ベストアンサー率 65% (276/422)

話がそれてきましたね。(^。^) 正確なバージョンは忘れましたが、IE4ぐらいからFSOが使えるようになったと思います。 WIN95はそれ以前なので無理なのです。 以前に業務でソフトにFSOを組み込んだのですが、エライ目にあったことがあり、それからはできるだけ使用しないようにしてるのです。 もし納品先が決まらないパッケージ物なら不向きですが、そうじゃないなら問題なしです。 でわで ...続きを読む
話がそれてきましたね。(^。^)

正確なバージョンは忘れましたが、IE4ぐらいからFSOが使えるようになったと思います。
WIN95はそれ以前なので無理なのです。

以前に業務でソフトにFSOを組み込んだのですが、エライ目にあったことがあり、それからはできるだけ使用しないようにしてるのです。

もし納品先が決まらないパッケージ物なら不向きですが、そうじゃないなら問題なしです。

でわでわ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ