①
CTRL+クリックやSHIFT+クリックで複数ブックを選択してからまとめるなら
http://dukicco.hatenadiary.jp/entry/2015/05/28/071424
【複数のブックをひとつのブックにまとめる】【エクセル2013,VBA】 より
'-------------------------------------------------------------------------------
Sub シート集計()
Dim i As Long, tst As String
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogOpen)
.Title = "統合したいエクセルファイルを選択(+ctr or +shiftで複数選択)"
.Filters.Add "Excelブック", "*.xls; *.xlsx; *.xlsm", 1
.InitialFileName = ThisWorkbook.Path
.AllowMultiSelect = True
.Show
For i = 1 To .SelectedItems.Count
'フルパスからファイル名を取得する。
tst = Dir(.SelectedItems(i))
'選んだブックを順に開く
Workbooks.Open Filename:=.SelectedItems(i)
'シートは「すべて」コピーされる。
Sheets.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
'ブックを閉じる。
Workbooks(tst).Close SaveChanges:=False
Next
End With
Application.ScreenUpdating = True
End Sub
②
同一フォルダにあるブック全てをまとめるなら
https://qiita.com/aki1275/items/19ebe6febb97565f4502
「VBAマクロでExcel複数ファイルを1つのファイルにまとめるやり方とTips」より
'-------------------------------------------------------------------------------------
Sub consolid()
'このブックと同じフォルダの全ブックをまとめます
Dim mb As Workbook
Dim wb As Workbook
Dim myfdr As String
Dim fname As String
Dim n As Long
Application.ScreenUpdating = False
Set mb = ThisWorkbook
myfdr = ThisWorkbook.Path
fname = Dir(myfdr & "\*.xls*")
Do Until fname = Empty
If fname <> mb.Name Then
Set wb = Workbooks.Open(myfdr & "\" & fname)
wb.Worksheets.Copy After:=mb.Sheets(mb.Sheets.Count)
wb.Close
n = n + 1
End If
fname = Dir
Loop
Application.ScreenUpdating = True
MsgBox n & " object(s) is(are) copied."
End Sub
'--------------------------------------------------------------------------------------