指定フォルダ内のすべてのサブフォルダを取得する方法。
メソッドを呼び出すときに渡している引数「"C:\ExcelTest"」を親フォルダとし、直下のサブフォルダを取得しています。取得したサブフォルダに対し、再帰呼び出しをしているのでフォルダが何階層でも取得することができます。
Private Sub CommandButton1_Click() Call folderSearch("C:\ExcelTest") End Sub Sub folderSearch(path As String) Dim FSO As Object, RootFolder As Object Dim sbFolders As Variant Set FSO = CreateObject("Scripting.FileSystemObject") Set RootFolder = FSO.getfolder(path) For Each sbFolders In RootFolder.SubFolders Debug.Print sbFolders.path Call folderSearch(sbFolders.path) Next sbFolders End Sub
次のコードは上記の応用です。
指定フォルダ内のすべてのファイルを取得する方法。
追加したのは17行目あたりからです。ファイル名をフルパスで取得する場合は、Filesコレクション。ファイル名のみを取得する場合は、Nameコレクションを使います。
Private Sub CommandButton1_Click() Call folderSearch("C:\ExcelTest") End Sub Sub folderSearch(path As String) Dim FSO As Object, RootFolder As Object, File As Variant Dim sbFolders As Variant Set FSO = CreateObject("Scripting.FileSystemObject") Set RootFolder = FSO.getfolder(path) For Each sbFolders In RootFolder.SubFolders Call folderSearch(sbFolders.path) Next sbFolders For Each File In RootFolder.Files Debug.Print File.path Next File End Subコードを整理したら随時更新していきます。m(__)m
0 件のコメント:
コメントを投稿