フォルダ内のすべてのファイルを処理
Sub フォルダ内のすべてのファイルを処理()
Dim path, fso, file, files
path = "C:/Users/xxxxxx/フォルダ名/" 'path = ThisWorkbook.Path & "/フォルダ名/" '相対パスの場合
Set fso = CreateObject("Scripting.FileSystemObject")
Set files = fso.GetFolder(path).files
'フォルダ内の全ファイルについて処理
For Each file In files
'ファイルを開いてブックとして取得
Dim wb As Workbook
Set wb = Workbooks.Open(file)
'ブックに対する処理
'保存せずに閉じる
Call wb.Close(SaveChanges:=False)
Next file
End Sub
フォルダ内のすべてのファイルを処理する方法2
Sub ProcessFilesInFolder()
Dim fso As Object
Dim folder As Object
Dim files As Object
Dim file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\TestFolder")
Set files = folder.Files
For Each file In files
'ファイルの内容を読み取ります
Dim fileContent As String
Open file.Path For Input As #1
fileContent = Input(LOF(1), 1)
Close #1
'ここに処理のコードを記述します
Next
End Sub
解説
1.FileSystemObjectを使用してフォルダを開きます
Dim fso As Object
Dim folder As Object
Dim files As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\TestFolder")
Set files = folder.Files
2.フォルダ内のすべてのファイルに対してループ処理を行います。以下のコードを使用して、フォルダ内のすべてのファイルをループ処理できます
For Each file In files
'ここに処理のコードを記述します
Next
3.各ファイルに対して、必要な処理を実行します。たとえば、ファイルを開いてデータを読み取り、ファイルに書き込み、または削除することができます。以下は、ファイルの内容を読み取る例です。
Dim fileContent As String
Open file.Path For Input As #1
fileContent = Input(LOF(1), 1)
Close #1
コメント