複数シート統合

複数シート統合

'プログラム0|変数設定の指定
Option Explicit

 

'プログラム1|プログラム開始
Sub GetExcelDataInAllSheets()

 

'プログラム2|シート設定
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("SheetALL")
Worksheets("SheetALL").Cells.Clear

 

'プログラム3|エクセル内の全シートを順々に取得
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets

 

'プログラム4|対象シートが「Sheet1」ではない場合のみ処理
If Not ws Is ws1 Then

 

'プログラム5|対象シートの最終行を取得
Dim cmax As Long
'cmax = ws.Range("A65536").End(xlUp).Row
cmax = ws.Cells(Rows.Count, 2).End(xlUp).Row
Debug.Print ws.Name & "のcmax=" & cmax

 

'プログラム6|対象シートのデータを転記
Dim i As Long
For i = 1 To cmax
Dim cmax1 As Long
cmax1 = ws1.Range("A65536").End(xlUp).Row
ws1.Range("A" & cmax1 + 1 & ":J" & cmax1 + 1).Value = ws.Range("A" & i & ":J" & i).Value
ws1.Range("A" & cmax1 + 1 & ":A" & cmax1 + 1).Value = ws.Name
Next
End If
Next

 

'プログラム7|エクセルを上書き保存
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
MsgBox "完了"

 

'プログラム8|プログラム終了
End Sub