• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです)

エクセルのマクロで各Sheetのデータを複数コピー&ペーストする方法

このQ&Aのポイント
  • エクセルのマクロを使用して、複数のSheetからデータをコピーして別のSheetに貼り付ける方法を教えてください。
  • 具体的には、各Sheetの5行目からA列からO列のデータを、挿入-ワークシート(Sheet1)に順番にコピーしていきたいです。お知恵をお貸しください。
  • 現在は、新しいマクロの記録機能を使用して、各Sheetからデータを一つずつコピーしているのですが、効率的な方法が知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

こちらに解説されています。 図は各シート行数固定の様な印象を与えますが、コードは最後の行位置を取得して処理しています。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html

MEGUMI19800214
質問者

お礼

ありがとうございます。 頂いた内容をもとにマクロを作ったのですが、 重複していると言われます。 Sheet3つにしか対応していないようにも見えますが、私がしたい処理はSheetは10数枚以上あり、毎回Sheet数が違います。

MEGUMI19800214
質問者

補足

たびたび申し訳ありません。 以下のマクロを使った場合にA列しかコピーしません。 これをA列~O列までをコピーするという指示を出したい場合どのようにすればいいでしょうか? Sub matome()  Dim i As Integer  Dim lRow As Long, lCol As Long, lRow2 As Long   Application.ScreenUpdating = False    '----全データシートの有無をチェックします      '----列見出しをコピーします   Worksheets(2).Range("1:1").Copy Worksheets(1).Range("A1")   For i = 2 To Worksheets.Count     With Worksheets(i)       lRow = .Cells(Rows.Count, 1).End(xlUp).Row       lCol = .Cells(1, Columns.Count).End(xlToLeft).Column       '----シートのデータが2行以上の場合にコピーします       If lRow >= 2 Then         lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1         .Activate         .Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1)       End If     End With   Next i   Worksheets(1).Activate   Range("A1").Select   Application.ScreenUpdating = True End Sub

関連するQ&A