Option Explicit
Sub SheetUnion()
Dim i As Integer
Dim Filename As String
Filename = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
Worksheets.Add Before:=Worksheets(1)
Worksheets(1).Name = Filename
For i = 2 To Sheets.Count
Const START_ROW_SRC As Long = 2
Const START_COL_SRC As Integer = 1
Const END_COL_SRC As Integer = 13
Const BOOK_NAME_COL As Integer = 1
Const SHEET_NAME_COL As Integer = 2
Dim endRowSrc As Long
With ThisWorkbook.Sheets(i)
endRowSrc = .Cells(.Rows.Count, 1).End(xlUp).row
End With
Dim wsDst As Worksheet
Set wsDst = ThisWorkbook.Sheets(Filename)
Const DST_COl As Integer = 3
Dim START_ROW_DST As Long
Dim endRowDst As Long
With wsDst
START_ROW_DST = .Cells(.Rows.Count, 1).End(xlUp).row + 1
endRowDst = START_ROW_DST + endRowSrc - START_ROW_SRC
End With
With ThisWorkbook.Sheets(i)
.Range(.Cells(START_ROW_SRC, START_COL_SRC), .Cells(endRowSrc, END_COL_SRC)).Copy Destination:=wsDst.Cells(START_ROW_DST, DST_COl)
End With
With wsDst
.Range(.Cells(START_ROW_DST, BOOK_NAME_COL), .Cells(endRowDst, BOOK_NAME_COL)).Value = Filename
End With
With wsDst
.Range(.Cells(START_ROW_DST, SHEET_NAME_COL), .Cells(endRowDst, SHEET_NAME_COL)).Value = ThisWorkbook.Sheets(i).Name
End With
Next i
wsDst.Activate
MsgBox ("正常終了")
End Sub