FSO Folders コレクションからフォルダを参照

このコードは、FileSystemObject (FSO) を使用して指定されたディレクトリ内のサブフォルダの情報を取得し、出力する方法を示しています。

' FSO Folders コレクションからフォルダを参照
Private Sub FSO_Folders()
    ' 参照設定「Microsoft Scripting Runtime」必要
    With New FileSystemObject
        Dim myPath As String
        myPath = "C:\TEMP"
        Dim myFolders As Folders
        ' 指定されたパスのサブフォルダのFoldersコレクションを取得
        Set myFolders = .GetFolder(myPath).SubFolders
        
        ' myFoldersコレクション内の指定されたフォルダ名(“hoge”)の名前を出力
        Debug.Print myFolders("hoge").Name
        ' myFoldersコレクション内のフォルダの数を出力
        Debug.Print myFolders.Count
        
        ' myFoldersコレクション内の各フォルダに対して繰り返し処理
        Dim myFolder As Folder
        For Each myFolder In myFolders
            ' myFoldersコレクション内の各フォルダに対して繰り返し処理
            Debug.Print myFolder.Name
        Next myFolder
    End With
End Sub

コードの詳細な説明

  1. FileSystemObjectの作成:With New FileSystemObject
    ここでは FileSystemObject の新しいインスタンスを作成しています。これにより、ファイルシステムにアクセスするためのオブジェクトを作成します。
  2. フォルダのパスを設定:Dim myPath As String myPath = "C:\TEMP"
    変数 myPath に、操作対象となるフォルダのパス(ここでは “C:\TEMP”)を代入します。
  3. サブフォルダの取得:Dim myFolders As Folders Set myFolders = .GetFolder(myPath).SubFolders
    指定されたパスのフォルダ(”C:\TEMP”)内のサブフォルダのコレクションを myFolders に設定します。
  4. 特定のフォルダ名の出力:Debug.Print myFolders("hoge").Name
    myFolders コレクション内に “hoge” という名前のフォルダが存在する場合、その名前をデバッグ出力に表示します。
  5. フォルダの数を出力:Debug.Print myFolders.Count
    myFolders コレクション内のフォルダの数をデバッグ出力に表示します。
  6. フォルダ名を繰り返し処理して出力:
    Dim myFolder As Folder
    For Each myFolder In myFolders
    Debug.Print myFolder.Name
    Next myFolder
    myFolders コレクション内の各フォルダに対して繰り返し処理を行い、それぞれのフォルダの名前をデバッグ出力に表示します。

このコードを実行すると、指定されたフォルダ (“C:\TEMP”) 内のサブフォルダの情報がデバッグウィンドウに出力されます。具体的には、”hoge” というフォルダが存在すればその名前、フォルダの数、そして各フォルダの名前が出力されます。

Follow me!