Option Explicit
Sub 別ブックのすべてのセルを取得5()
Dim startTime As Double
Dim middleTime As Double
Dim processTime As Double
startTime = Timer '開始時間取得
Application.ScreenUpdating = False '画面描画を停止
Application.EnableEvents = False 'イベントを抑止
Application.DisplayAlerts = False '確認メッセージを抑止
Application.Calculation = xlCalculationManual '計算を手動に
'------------------------------------------------------------------------ここまで
'↑ここまでは上記サンプルコードと同一↑
'メイン処理0の時間をイミディエイトウィンドウに出力
middleTime = Timer
processTime = middleTime - startTime
Debug.Print "メイン処理0の終了:"; processTime & "秒" & vbCrLf
'Call メイン処理0の終了
'------------------------------------------------------------------------1ここから
Dim FullPath1 As String, FullPath2 As String, FullPath3 As String, FullPath4 As String
FullPath1 = "C:\Users\名前\Desktop\Excelフォルダ" & "\" & "配信スケジュール .xlsm" ' "救急患者集計.xlsm"
FullPath2 = "C:\Users\名前\Desktop\Excelフォルダ" & "\" & "未納本文.xlsm" ' "救急患者集計.xlsm""未納整理簿.xlsm"
FullPath3 = "C:\Users\名前\Desktop\Excelフォルダ" & "\" & "未納本文.xlsm" ' "救急患者集計.xlsm""未納整理簿.xlsm"
FullPath4 = "C:\Users\名前\Desktop\Excelフォルダ" & "\" & "未納本文.xlsm" ' "救急患者集計.xlsm""未収金折衝状況表.xlsm"
FullPath1 = "D:\goo\excel\goo446\配信スケジュール.xlsm"
FullPath2 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath3 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath4 = "D:\goo\excel\goo446\未納本文.xlsm"
Dim Fullpath As Variant
Dim Frsheet As Variant
Dim ToSheet As Variant
Dim Title As Variant
Dim i As Long
Fullpath = Array(FullPath1, FullPath2, FullPath3, FullPath4)
Frsheet = Array("sheet5", "未納本文", "全部1", "未納本文")
ToSheet = Array("kyu", "nyu", "gai", "折衝取込")
Title = Array("未納本文処理1の終了:", "全部1処理2の終了:", "未納本文処理3の終了:", "全部1をふくめた完了までの所要時間:")
'既存のシート削除
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If check_sheet(ws.name, ToSheet) = True Then
ws.Delete
End If
Next
'シートのコピー
For i = 3 To 0 Step -1
Call copy_sheet(Fullpath(i), Frsheet(i), ToSheet(i))
middleTime = Timer
processTime = middleTime - startTime
Debug.Print Title(i); processTime & "秒" & vbCrLf
Next
Application.Calculation = xlCalculationAutomatic '計算を自動に
Application.DisplayAlerts = True '確認メッセージを開始
Application.EnableEvents = True 'イベントを開始
Application.ScreenUpdating = True
MsgBox "書き換えました"
End Sub
Private Function check_sheet(ByVal name As String, ByVal ToSheet As Variant) As Boolean
Dim i As Long
check_sheet = True
For i = 0 To UBound(ToSheet)
If name = ToSheet(i) Then Exit Function
Next
check_sheet = False
End Function
Private Sub copy_sheet(ByVal Fullpath As String, ByVal Frsheet As String, ByVal ToSheet As String)
Dim Fwb As Workbook
Set Fwb = Workbooks.Open(Fullpath, ReadOnly:=True) '読取り専用で開く
ActiveWindow.Visible = False
Fwb.Worksheets(Frsheet).Copy Before:=ThisWorkbook.Worksheets(1)
ThisWorkbook.Worksheets(1).name = ToSheet
Fwb.Close
End Sub