fork download
  1. Option Explicit
  2. Public Sub 集計ブックコピー()
  3. Const book1 As String = "収支データブック.xlsx"
  4. Const book2 As String = "明細ブック.xlsx"
  5. Const Sheet1 As String = "推移"
  6. Const sheet2 As String = "明細"
  7. Const Sheet3 As String = "Sheet1"
  8. Dim sheet_name As String
  9. Dim wb As Workbook
  10. Call delete_sheet(Sheet1)
  11. Call delete_sheet(sheet2)
  12. Call delete_sheet(Sheet3)
  13.  
  14. Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book1)
  15. wb.Worksheets(Sheet1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
  16. ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet1
  17. wb.Worksheets(sheet2).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
  18. ThisWorkbook.Worksheets(Worksheets.Count).Name = sheet2
  19. wb.Close
  20.  
  21. Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & book2)
  22. wb.Worksheets(Sheet3).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
  23. ThisWorkbook.Worksheets(Worksheets.Count).Name = Sheet3
  24. wb.Close
  25. MsgBox ("完了")
  26. End Sub
  27. '指定されたシートを削除
  28. Private Sub delete_sheet(ByVal sheet_name As String)
  29. Dim i As Long
  30. For i = 1 To ThisWorkbook.Worksheets.Count
  31. If LCase(sheet_name) = LCase(ThisWorkbook.Worksheets(i).Name) Then
  32. Application.DisplayAlerts = False 'シート削除時の警告を出さないようにする
  33. ThisWorkbook.Worksheets(i).Delete
  34. Application.DisplayAlerts = True 'シート削除時の警告を出すようにする(元に戻す)
  35. Exit Sub
  36. End If
  37. Next
  38. End Sub
  39.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty