概要
指定されたフォルダの中にある全てのExcelファイル(サブフォルダ内も含む)を処理するコード
参照設定
FileSystemObject、Folderオブジェクト、Fileオブジェクトを使うので参照設定。
- コードエディタ
- →「ツール」
- →「参照設定」
- →「Microsoft Scripting Runtime」にチェック
- →「OK」
コード
Sub main()
Dim targetFolder As String
targetFolder = "C:\hoge"
SearchFolder targetFolder
End Sub
Sub SearchFolder(ByVal path As String)
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
Dim tFol As Folder
Set tFol = FSO.GetFolder(path)
'全てのフォルダを探索する
Dim fol As Folder
For Each fol In tFol.SubFolders
SearchFolder fol.path
Next
'全てのファイルをチェックする
Dim fi As File
For Each fi In tFol.Files
'一時ファイルは除外
If Left$(fi.Name, 2) <> "~$" Then
'Excelファイルのみ
If Right$(fi.Name, 5) = ".xlsx" Then
ProcFile fi.path
End If
End If
Next
End Sub
Sub ProcFile(ByVal path As String)
'ファイルごとの処理
End Sub