指定したフォルダにあるフォルダ名とファイル名を一覧で取得する。
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■実行結果




