FSO サブフォルダ、ファイルの取得

このコードは、FileSystemObject (FSO) を使用して特定のフォルダ内のサブフォルダとファイルの数を取得し、デバッグ出力に表示する方法を示しています。

' FSO サブフォルダ、ファイルの取得
Private Sub FSO_SubFolders_Files()
    ' 参照設定「Microsoft Scripting Runtime」必要
    With New FileSystemObject
    ' 以下は、参照設定有無にかかわらず使用可
    'With CreateObject("Scripting.FileSystemObject")
        ' 指定されたパスのFolderオブジェクトを取得
        
        With .GetFolder("C:\TEMP")
            ' 取得したフォルダ内のサブフォルダの数を出力
            Debug.Print .SubFolders.Count
            ' 取得したフォルダ内のファイルの数を出力
            Debug.Print .Files.Count
        End With
        ' 指定されたドライブ("C"ドライブ)のルートフォルダのFolderオブジェクトを取得
        With .GetDrive("C").RootFolder
            ' 取得したフォルダ内のサブフォルダの数を出力
            Debug.Print .SubFolders.Count
            ' 取得したフォルダ内のファイルの数を出力
            Debug.Print .Files.Count
        End With
    End With
End Sub

コードの詳細な説明

  1. FileSystemObjectの作成:With New FileSystemObject
    ここでは、FileSystemObject のインスタンスを作成しています。このオブジェクトを使ってファイルシステムにアクセスします。
  2. 指定されたフォルダオブジェクトの取得:With .GetFolder("C:\TEMP")
    指定されたパス(”C:\TEMP”)のフォルダオブジェクトを取得します。このオブジェクトを使ってフォルダ内のサブフォルダとファイルの情報にアクセスします。
  3. サブフォルダとファイルの数を出力:Debug.Print .SubFolders.Count
    • SubFolders.Count: フォルダ内のサブフォルダの数を出力します。
    vbaコードをコピーするDebug.Print .Files.Count
    • Files.Count: フォルダ内のファイルの数を出力します。
  4. 指定されたドライブのルートフォルダオブジェクトの取得:With .GetDrive("C").RootFolder
    指定されたドライブ(”C”ドライブ)のルートフォルダのフォルダオブジェクトを取得します。このオブジェクトを使ってルートフォルダ内のサブフォルダとファイルの情報にアクセスします。
  5. ルートフォルダのサブフォルダとファイルの数を出力:Debug.Print .SubFolders.Count
    • SubFolders.Count: ルートフォルダ内のサブフォルダの数を出力します。
    vbaコードをコピーするDebug.Print .Files.Count
    • Files.Count: ルートフォルダ内のファイルの数を出力します。

コード全体の動作まとめ

  • FileSystemObject を使用して “C:\TEMP” フォルダと “C” ドライブのルートフォルダのオブジェクトを取得します。
  • それぞれのフォルダ内のサブフォルダとファイルの数を取得し、デバッグ出力に表示します。

このコードを実行すると、”C:\TEMP” フォルダおよび “C” ドライブのルートフォルダに含まれるサブフォルダとファイルの数がデバッグ出力に表示されます。これにより、指定されたフォルダおよびドライブの内容を簡単に確認することができます。

Follow me!