自分と同じ階層の、特定のエクセルのみシートを全コピーする

月例会でバラバラに提出された報告資料を、総括ファイルにワンタッチでまとめるvba
これで毎回ブックを開いて、シートのコピーをしなくてよいわけだ。

' 同じ階層の、特定のエクセルファイルのシートを結合する
' このvbaで発生するいかなる問題に対して、私は責任を持ちません。
' コピペは自己責任でお願いします。
Private Sub cmdSum_Click()

    ' カレントパスの取得
    Dim curPath As String
    curPath = ThisWorkbook.Path
    'MsgBox (curPath)
    
    ' 配下のファイルを取得
    Dim objFS As Object
    Set objFS = CreateObject("Scripting.FileSystemObject")

    Dim objDir As Object
    Set objDir = objFS.GetFolder(curPath)
    
    ' 目的のエクセルファイルならシートをコピーする
    ' もしマージ資料が増えたら、ここに追記していけばよい。
    Dim tgt(2) As String
    tgt(0) = "@001_資料1.xls"
    tgt(1) = "@002_性能2.xls"
    tgt(2) = "@003_性能3.xls"


    Dim i As Integer
    For i = 0 To UBound(tgt)
    
        ' 対象ファイルが存在しない場合は、読み飛ばすか確認
        If (objFS.FileExists(curPath + "\" + tgt(i)) = True) Then
                    
            ' エクセルファイルを開いてシートをコピーする
            Dim wb, wbBase As workBook
            Set wb = Workbooks.Open(Filename:=curPath + "\" + tgt(i), ReadOnly:=True)
            Set wbBase = Workbooks("総括.xls")
            
            ' 総括ブックの、シート末尾に順次追加する
            Dim j, wbBaseSheetsCnt
            wbBaseSheetsCnt = wbBase.Sheets.Count
            For j = wb.Sheets.Count To 1 Step -1
                wb.Sheets(j).Copy after:=wbBase.Sheets(wbBaseSheetsCnt)
            Next
            
            wb.Close

        Else
            If (MsgBox(tgt(i) + "が見つかりません。続行しますか?", vbYesNo) = vbNo) Then
                MsgBox ("処理を中断しました")
                Exit For
            End If

        End If
    Next
    
    ' 後始末
    Set objFS = Nothing

End Sub


肝は、総括ブックにシートを追加するときの順番。
末尾のシートから、総括ブックのシート末尾に追加しないと、、シートの順番がごちゃごちゃになる。