Sub CombineSheets() Dim ws As Worksheet Dim combinedSheet As Worksheet Dim lastRow As Long ‘ 結合先のシートを作成または指定します Set combinedSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) combinedSheet.Name = “CombinedData” ‘ 各シートのデータを結合先のシートにコピーして貼り付けます For Each ws In ThisWorkbook.Worksheets If ws.Name <> combinedSheet.Name Then lastRow = combinedSheet.Cells(combinedSheet.Rows.Count, “A”).End(xlUp).Row ws.UsedRange.Copy combinedSheet.Cells(lastRow + 1, 1) End If Next ws End Sub 解説して
このVBAマクロは、Excelのワークブック内のすべてのシートを取得し、それらのデータを1つのシートに結合するものです。
- 最初に、新しいシートを作成します。これが結合されたデータが配置されるシートになります。
vba
Set combinedSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) combinedSheet.Name = "CombinedData"
ここで、新しいシートが作成され、名前が “CombinedData" に設定されます。
- 次に、各シートのデータを結合先のシートにコピーして貼り付けます。
vba
For Each ws In ThisWorkbook.Worksheets If ws.Name <> combinedSheet.Name Then lastRow = combinedSheet.Cells(combinedSheet.Rows.Count, "A").End(xlUp).Row ws.UsedRange.Copy combinedSheet.Cells(lastRow + 1, 1) End If Next ws
これはループで、各シートのデータを結合先のシートにコピーします。各シートの最終行を取得し、その次の行からデータを貼り付けることで、結合されたデータが重複するのを防ぎます。

ディスカッション
コメント一覧
まだ、コメントがありません