例文を使って繰り返し業務を時短

【マクロ・VBA】フォルダ内のすべてのファイルを処理

エクセル、マクロ、VBAでフォルダ内のすべてのファイルを処理する方法 VBA

フォルダ内のすべてのファイルを処理

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

コメント

タイトルとURLをコピーしました