【VBA】複数シートのデータを1シートにまとめる(動画あり)

vba-複数シートの重複する値を抽出-アイキャッチ ExcelVBA

エクセルマクロで、複数シートのデータを1シートにまとめるマクロコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

複数シートのデータを1シートにまとめる

以下のマクロを実行すると、複数シートのデータを1枚に連結します。


Sub 複数シートのデータを特定シートに集約()

Dim Sht_Matome As Worksheet
Dim Ws As Worksheet
Dim LastRow As Long
Dim LastRow_Buf As Long

    Set Sht_Matome = Sheets("まとめ")
    
    LastRow_Buf = 1
    
    Application.ScreenUpdating = False

    'シートループ
    For Each Ws In Worksheets

        '「まとめ」シートじゃなければ
        If Ws.Name <> Sht_Matome.Name Then
        
            With Sht_Matome
    
                '最終行
                LastRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
    
                'データをコピーして「まとめ」シートへ貼り付け
                Ws.Select
                Ws.Range(Ws.Cells(2, 1), Cells(LastRow, 4)).Copy .Cells(LastRow_Buf, 1)
    
                'E列にシート名を追加
                Sht_Matome.Select
                Sht_Matome.Range(.Cells(LastRow_Buf, 5), _
                    Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 5)) = Ws.Name
    
                 '「まとめ」シートの最終行取得
                LastRow_Buf = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            End With
        End If
    Next

    Application.ScreenUpdating = True

End Sub

マクロ実行前

「Sheet1」「Sheet2」「Sheet3」は、A~D列までデータが入っています。

最終行はシートによって異なります。


 

マクロ実行後

「Sheet1」「Sheet2」「Sheet3」のA~D列のデータを、

「まとめ」シートにすべて転記します。

E列には転記元のシート名を自動追加しています。


 

複数シートのデータを1シートにまとめる(指定範囲)

以下のマクロを実行すると、複数シートの特定範囲のデータを1枚に連結します。


Sub 複数シートのデータを1シートに集約()

Dim Sht_Matome As Worksheet
Dim Ws As Worksheet
Dim LastRow_Buf As Long

    Set Sht_Matome = Sheets("まとめ")
    
    LastRow_Buf = 1
    
    Application.ScreenUpdating = False

    'シートループ
    For Each Ws In Worksheets

        '「まとめ」シートじゃなければ
        If Ws.Name <> Sht_Matome.Name Then
        
            With Sht_Matome
    
                'データをコピーして「まとめ」シートへ貼り付け
                Ws.Select
                Ws.Range(Ws.Cells(2, 1), Cells(4, 3)).Copy .Cells(LastRow_Buf, 1)
    
                'E列にシート名を追加
                Sht_Matome.Select
                Sht_Matome.Range(.Cells(LastRow_Buf, 4), _
                    Cells(.Cells(Rows.Count, 3).End(xlUp).Row, 4)) = Ws.Name
    
                 '「まとめ」シートの最終行取得
                LastRow_Buf = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            
            End With
        End If
    Next

    Application.ScreenUpdating = True

End Sub

マクロ実行前

「Sheet1」「Sheet2」「Sheet3」は、A~D列までデータが入っています。


 

マクロ実行後

「Sheet1」「Sheet2」「Sheet3」のA2:C4のデータを、

「まとめ」シートに転記します。

D列には転記元のシート名を自動追加しています。


 

ChatGPT実演:他シート転記マクロ

ChatGPTで転記マクロを作成してみました🥰
ぜひご覧ください!

 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】別シート転記を自動処理する方法まとめ
 

【エクセルマクロ】別シート転記(抽出)を自動化する:超便利20選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!