Option Explicit
Public Sub 集計ブックコピー()
Const book1 As String = "収支データブック.xlsx"
Const book2 As String = "明細ブック.xlsx"
Const Sheet1 As String = "推移"
Const sheet2 As String = "明細"
Const Sheet3 As String = "Sheet1"
Dim sheet_name As String
Dim wb As Workbook
Call delete_sheet(Sheet1)
Call delete_sheet(sheet2)
Call delete_sheet(Sheet3)
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book1)
wb.Worksheets(Sheet1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet1
wb.Worksheets(sheet2).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = sheet2
wb.Close
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book2)
wb.Worksheets(Sheet3).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet3
wb.Close
MsgBox ("完了")
End Sub
'指定されたシートを削除
Private Sub delete_sheet(ByVal sheet_name As String)
Dim i As Long
For i = 1 To ThisWorkbook.Worksheets.Count
If LCase(sheet_name) = LCase(ThisWorkbook.Worksheets(i).Name) Then
Application.DisplayAlerts = False 'シート削除時の警告を出さないようにする
ThisWorkbook.Worksheets(i).Delete
Application.DisplayAlerts = True 'シート削除時の警告を出すようにする(元に戻す)
Exit Sub
End If
Next
End Sub