指定ディレクトリ配下(サブディレクトリを含む)すべてのファイルに処理をするVBAのサンプル。
自分が使いまわせるように、余計な処理を書かずに、枠だけにしています。
例えばこんなフォルダ構成で、「Test」のパスを渡すと、
Test配下のそれぞれのフォルダにあるファイルに処理をするためのコードです。
ツール > 参照設定 > Microsoft Scripting Runtime
Option Explicit '------------------------------------------------------------------------------- ' 指定ディレクトリ配下(サブディレクトリを含む)すべてのファイルに対する処理 '------------------------------------------------------------------------------- Public Sub scanDirectory(ByVal sTopPath As String) 'ツール > 参照設定 > Microsoft Scripting Runtime Dim oFso As New FileSystemObject 'ファイルシステムオブジェクト Dim oTopDir As Folder '先頭ディレクトリ Dim oDir As Folder 'ディレクトリ Dim oFile As File 'ファイル On Error GoTo Term '先頭ディレクトリオブジェクト取得 Set oTopDir = oFso.GetFolder(sTopPath) 'ディレクトリ配下のディレクトリパス名を取得する For Each oDir In oTopDir.SubFolders 'ショートカット以外 If oDir.Attributes <> Alias Then '再帰 Call scanDirectory(oDir.Path) End If Next 'ディレクトリ直下のすべてのファイル For Each oFile In oFso.GetFolder(sTopPath).Files 'ファイルごとの処理 'Debug.Print (oFile.Name) Next Term: Set oFso = Nothing Set oTopDir = Nothing Set oDir = Nothing Set oFile = Nothing End Sub