フォルダ内のすべてのファイルを処理
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.Files2.フォルダ内のすべてのファイルに対してループ処理を行います。以下のコードを使用して、フォルダ内のすべてのファイルをループ処理できます
For Each file In files
    'ここに処理のコードを記述します
Next3.各ファイルに対して、必要な処理を実行します。たとえば、ファイルを開いてデータを読み取り、ファイルに書き込み、または削除することができます。以下は、ファイルの内容を読み取る例です。
Dim fileContent As String
Open file.Path For Input As #1
fileContent = Input(LOF(1), 1)
Close #1
 
  
  
  
  

コメント