ファイルシステムオブジェクトによるドライブ操作(1)

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

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

使用方法

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

各メソッドの説明

fso.GetDrive

引数で指定したドライブのドライブブジェクトを返します。ネットワーク上の共有ドライブの場合は事前に 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

  Setステートメント

fso.DriveExists

引数で指定したドライブの存在チェックを行い、結果を 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

  Setステートメント

fso.Drives

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

すべてのドライブ名とそのタイプを表示する例

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

drive.DriveLetterdrive.DriveType プロパティについては次のページで説明します。

Sub sample_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

 drive.DriveLetter  drive.DriveType Setステートメント
  For Each…Next  Withステートメント

テスト環境のドライブは以下のとおりです。

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

上記サンプルマクロを実行すると各ドライブの状況がイミディエイトウィンドウへ表示されます。

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

 
ファイルシステムオブジェクトのプロパティ・メソッド

タイトルとURLをコピーしました