excel room

事務作業で役に立つエクセル関数などを解説します。

エクセル 複数ファイルをひとつにまとめるマクロ

以下のコードは、YouTubeで解説した動画のコードになります。

youtu.be

 

Sub macro()
    Dim path As Variant
    path = Application.GetOpenFilename("Microsoft Excel,*xls?", MultiSelect:=True)
    
    If IsArray(path) Then
    
    Dim i As Long
    For i = 1 To UBound(path)
    Dim openBook As Workbook
    Set openBook = Workbooks.Open(path(i))
    
    Dim ws1 As Worksheet
    Set ws1 = openBook.Worksheets(1)
    
    ws1.Range("A2:I" & Cells(Rows.Count, 1).End(xlUp).Row).Copy _
    ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Application.CutCopyMode = False
    openBook.Close savechanges:=True
    Next i
    End If
    
End Sub