アクセス上位ページ
 
最近の更新内容
(4).FSOによるドライブ操作 ⇐ [PREV]
[NEXT] ⇒ (4)-b.FSOによるドライブ操作A

Excel VBA ≫ 3.FSO - FSOによるドライブ操作(4)-a.FSOによるドライブ操作@

ファイルシステムオブジェクトを使用したドライブ操作@

このページでは下表のメソッドについて説明します。 これらはすべて FileSystemObjectメソッドおよびプロパティになります。

内容 メソッド/プロパティ
ドライブオブジェクト取得 fso.GetDrive
ドライブ存在チェック fso.DriveExists
ドライブコレクション取得 fso.Drives


  • 【構文】
    fso.GetDrive ( DriveSpec )
    fso.DriveExists ( DriveSpec )
    fso.Drives

引数名 省略 説明
DriveSpec × ドライブ名 (c)、コロン付きのドライブ名 (c:)、コロンとパスの区切り文字の付いたドライブ名 (c:¥)、 任意のネットワーク共有名 (¥¥computer2¥share1) のいずれかを指定します。




使用方法解説

  • fso.GetDrive ( DriveSpec )
  • 引数で指定したドライブのドライブブジェクトを返します。 ネットワーク上の共有ドライブの場合は事前に fso.DriveExists で共有のチェックをしておくとよいでしょう。 <使用例>
    Dim fso       As Object
    Dim driveObj  As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set driveObj = fso.GetDrive("C")
    
    'オブジェクト変数のクリア
    Set fso = Nothing
    Set driveObj = Nothing
    

  • fso.DriveExists ( DriveSpec )
  • 引数で指定したドライブの存在チェックを行い、結果を True または False で返します。 <使用例>
    Dim fso     As Object
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    if Not fso.DirveExists("\\computer2\share1") then
        MsgBox "ネットワーク共有ドライブが存在しません。処理を中止します。"
        End
    End If
    
    'オブジェクト変数のクリア
    Set fso = Nothing
    

  • fso.Drives
  • ドライブオブジェクトのコレクションを取得します。 このコレクションを使用した例は以下のサンプルを参照してください。

  • すべてのドライブ名とそのタイプを表示する例
  • fso.Drives プロパティによりドライブコレクションを取得した後、 繰り返し処理 For Each … Next により各ドライブ名とタイプをイミディエイトウィンドウへ表示する例です。

    drive.DriveLetterdrive.DriveType プロパティについては次のページで説明します。
    Sub test_fs041_01()
        Dim fso         As Object
        Dim driveObj    As Object
        Dim strType     As String
    
        Set fso = CreateObject("Scripting.FileSystemObject")
    
        For Each driveObj In fso.Drives
            With driveObj
                Debug.Print "ドライブ:" & .DriveLetter
                Select Case .DriveType
                    Case 0: strType = "不明"
                    Case 1: strType = "リムーバブル ディスク"
                    Case 2: strType = "ハード ディスク"
                    Case 3: strType = "ネットワーク ドライブ"
                    Case 4: strType = "CD/DVD-ROM"
                    Case 5: strType = "RAM ディスク"
                End Select
                Debug.Print "タイプ :" & strType
            End With
        Next
    
        'オブジェクト変数のクリア
        Set fso = Nothing
        Set driveObj = Nothing
    End Sub
    

    <ドライブの一覧とその補足> ドライブの一覧
    • Cドライブ ・・・ 内臓ハードディスク
    • Dドライブ ・・・ 内臓ハードディスク
    • Eドライブ ・・・ 内臓DVDドライブ
    • Fドライブ ・・・ 外付けSDカード
    • Zドライブ ・・・ ネットワーク上の ¥¥Server¥Users¥Public を割りあて

    <実行結果(イミディエイトウィンドウ)>
    ドライブ:C
    タイプ :ハード ディスク
    ドライブ:D
    タイプ :ハード ディスク
    ドライブ:E
    タイプ :CD/DVD-ROM
    ドライブ:F
    タイプ :リムーバブル ディスク
    ドライブ:Z
    タイプ :ネットワーク ドライブ
    

カテゴリ内ページ



Page
Top