ブック内にある複数のシートのリストを一つのシートに統合するマクロ


ブックの中にある複数のシートの情報を




一つのシートにまとめるマクロ

コード

Sub シートデータ統合()
    Dim WSCount As Long
    Dim WS As Worksheet
    Dim DataNumber As Long
    Dim RowCount As Long
    Dim i As Long
    
    'シートの数を数える
    WSCount = Sheets.Count
    '新しいシートを追加して変数に設定
    Set WS = Worksheets.Add(After:=Worksheets(WSCount))
    
    '最初に数えたシートの数だけ繰り返し
    For i = 1 To WSCount
    
        '統合先で入力したい行を取得
        RowCount = WS.Cells(Rows.Count, 1).End(xlUp).Row + 1
        'データ数を取得
        DataNumber = Sheets(i).Cells(Rows.Count, 1).End(xlUp).Row - 1
        '統合先へコピー '7列目までの場合
        Sheets(i).Range("A2").Resize(DataNumber, 7).Copy Destination:=WS.Cells(RowCount, 1)
    Next
    
    'タイトル行を貼り付け
    Sheets(1).Rows(1).Copy Destination:=WS.Range("A1")
    
    '統合シートの名前を変更
    WS.name = "統合"
    
    MsgBox "統合完了"
End Sub

注意点

  • 1行目にタイトルがある場合のコード
  • 上記は7列目までコピーしてくるコード。列数は要編集。
  • すでに「統合」という名前のシートがあるとエラーになる。