アプリケーションとしてのVBA
Fileの一覧をサブフォルダを含めて取得する(再帰呼び出し)
◆Fileの一覧をサブフォルダを含めて取得する(再帰呼び出し)
自分で自分を呼び出す、再帰呼び出しのサンプルです。
再帰呼び出しは C 等では良く使う手法です。
サンプルではサブフォルダを含めて、ファイルの一覧をフォルダを指定して
取得しています。
File の一覧をセルに入力します。
File の一覧や Folder の一覧を取得する部分は、「File / Folder の一覧を取得する」
を参照してください。
cnt と Pop は パブリック宣言してあります。
Popはフォルダの階層をカウントしていて、File 一覧を階層的に表示するために
使用しています。
example13 をダウンロードして動作を確認してください。
Sub ListUp(FolderSpec)
Dim File_Collection As Object
Dim File_List As Variant
Dim Folder_Collection As Object
Dim Folder_List As Variant
Set File_Collection = _
CreateObject("Scripting.FileSystemObject") _
.GetFolder(FolderSpec).Files
Cells(cnt, Pop) = FolderSpec
cnt = cnt + 1
For Each File_List In File_Collection
Cells(cnt, Pop + 1) = File_List.Name
cnt = cnt + 1
Next
Set Folder_Collection = _
CreateObject("Scripting.FileSystemObject") _
.GetFolder(FolderSpec).SubFolders
For Each Folder_List In Folder_Collection
Pop = Pop + 1
ListUp FolderSpec & "\" & Folder_List.Name
Next
Pop = Pop - 1
End Sub