指定フォルダ内のすべてのサブフォルダを取得する方法。
メソッドを呼び出すときに渡している引数「"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 件のコメント:
コメントを投稿