フォルダにあるフォルダ名とファイル名の一覧を取得

指定したフォルダにあるフォルダ名とファイル名を一覧で取得する。

VBAで指定したフォルダにあるフォルダとファイル名の一覧を取得します。

一覧の取得には「FileSystemObjectのGetFolderメソッド」と「Dir関数」を利用する2種類を方法があります。
なお指定のフォルダのサブフォルダ内にあるファイル名はこの方法では取得できません。
サブフォルダを含めたファイル名を取得したい場合は下記のリンクのページを参照してください。
 サブフォルダを含むフォルダとファイル名の一覧を取得
 サブフォルダを含むフォルダとファイル名の一覧をソートして取得

 ●フォルダ内のフォルダ、ファイル一覧を取得(FileSystemObject使用)

'******************************************************************
' フォルダ内のファイルを一覧で取得
'*****************************************************************
Sub getFileList_FSO()
    
    'フォルダを指定
    Dim sFolderPath As String
    sFolderPath = "C:\VBA\List\"
    
    'FileSystemObjectオブジェクトの作成
    Dim oFso As Object
    Set oFso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダオブジェクトの取得
    Dim oFolder As Object
    Set oFolder = oFso.GetFolder(sFolderPath)

    'フォルダ一覧の作成
    Debug.Print "(フォルダ)"
    Dim oSubFolder As Object
    For Each oSubFolder In oFolder.SubFolders
        Debug.Print oSubFolder.Name
    Next

    'ファイル一覧の作成
    Debug.Print "(ファイル)"
    Dim oFile As Object
    For Each oFile In oFolder.Files
        Debug.Print oFile.Name
    Next

    Set oFso = Nothing

End Sub

 ■実行結果

対象のフォルダ


 ●フォルダ内のフォルダ、ファイル一覧を取得(Dir関数)

'******************************************************************
' フォルダ内のファイルを一覧で取得
'*****************************************************************
Sub getFileList_Dir()
    
    'フォルダを指定
    Dim sDirPath As String
    sDirPath = "C:\VBA\List\"
    
    'フォルダ内のフォルダ、ファイル一覧を取得
    Dim sDir As String
    sDir = Dir(sDirPath & "*", vbDirectory)
    
    Do While sDir <> ""
        Debug.Print sDir
        sDir = Dir()
    Loop

End Sub

 ■実行結果

対象のフォルダ