• ベストアンサー

複数のシートにまたがるデータをひとつのシートにまとめるには(VBA)

複数のシートにまたがるリスト形式のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。 具体的には (1)Sheet1のリスト形式のデータ全てをコピーする (2)貼り付け先のシート(統合シート)に貼り付ける (3)Sheet2のデータ全てをコピーする (4)統合シートの最終行の次に貼り付ける (5)残りのシートについても(3)→(4)を繰り返す よろしくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

"統合"という名前のシートに、他のすべてのシートのリストデータを貼り付けます。 各シートのリストはA列から始まっているものとします。(違う場合はコードを修正してください) Sub test01() Dim sh As Worksheet Dim lr As Long, tlr As Long For Each sh In Worksheets If sh.Name <> "統合" Then lr = sh.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row sh.Rows("1:" & lr).Copy tlr = Sheets("統合").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row Sheets("統合").Range("A" & tlr + 1).PasteSpecial Application.CutCopyMode = False End If Next End Sub

yuichi8
質問者

お礼

merlionXXさんありがとうございます。一発で解決しました!

関連するQ&A

  • 異なるブックのデータを同一シートに貼り付けるには

    いつもお世話になっております。 異なるExcelブックのデータ(リスト形式)を一枚のシートに貼り付けるにはどのようなプログラムを組めばよろしいでしょうか。 ・ExcelファイルはOutlookの受信メールにひとつずつ添付されており、各ブックにはシートが一枚のみがあるものとします。 ・受信メールは全て特定のメールフォルダに保存されています。 (1)受信メールの添付のExcelファイルを開く (2)シートの2行目から5行目を選択してコピー (3)"統合"シート(別ファイル)に貼り付け (4)Excelファイルを閉じる (5)次の受信メールのExcelファイルを開いて2行目から5行目をコピー→"統合"シートの最終行の次の行に貼り付け→ファイルを閉じる。 (6)メールフォルダの中の全ての添付ファイルについて(5)を繰り返す。 なお、ファイルを開かなくても貼り付け作業ができる場合にはそちらでお願いします。 よろしくお願いします。

  • エクセル 複数シートのデータを1シートにまとめるマクロ

    エクセルの複数シートにデータがあります。同じ条件の人のデータだけをひとつのシートにまとめたいのですが、マクロを教えていただけますでしょうか。それとも、マクロ以外に良い方法がありますか? エクセル初心者なので、あたりまえのことも知らないかもしれません。。。  【データ】 ●シート1からシート20まで、同じ配列でデータがあります。 ●1行目は見出しです。2行目から1人づつのデータです。(多くても65行までと思っています。) ●A列に到達度、B列に出欠をいれました。 ●C列からM列が氏名、課題、その他のデータです。 ●リストはシート21にあります。  【こんな作業でしょうか?】 ●シート1から20で A列が「C」または「D」ならば その行のA列からM列をコピーして シート21のA列からM列に形式を値にして張り付ける ●シート1から20で B列が「欠」ならば その行のA列からM列をコピーしてシート21のA列からM列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

  • 複数のシートの統合について

    複数のシートの統合について 8月から社内で異動があり、データ管理を作成することになりました。 現在取り組もうとしている作業は、ネット情報等で自分なりに調べた結果、 マクロを使わなければならないと判断し、本を買って勉強しています。 しかしVBAは超初心者で、期日までに間に合いそうにありません。 どうすればよいのかわからず、質問させていただきました。 どなたかご存じの方、ご教授願います。 内容は、 複数(15枚以内)のシートを1枚の統合シートにまとめるのですが、 新規行を入力後、その都度、統合シートの最終行に自動コピーされるようにしたいのです。 シート全体を統合シートにまとめるのはArrayやループ処理等を使って出来るようになったのですが。 VBAでなくともエクセル関数でも出来るのであれば、その方法も教えていただきまいと思います。

  • EXCEL 複数シートを1つのシートに集約する方法

    1つのブックに複数(30程度)の同一フォームのシートがあり、それらを1つのシートにまとめる方法があれば教えて下さい。 データを統合(集計)するわけではなく、単純にシート1の最後のデータの次の行にシート2のデータを追加、同様にシート3~最後のシートのデータを次々に追加したいのです。 手作業でデータをコピー&ペーストでももちろん可能ですが、結構時間がかかりますので簡単なマクロでできれば助かります。 よろしくお願いします。

  • 複数のシートのデータをひとつのシートに纏める

    EXCELにおいて、複数のシートのA列のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。 (内容) ”Cycle1”SheetのA列をコピー⇒”まとめ”SheetのA列に貼り付け ⇒”Cycle2”SheetのA列をコピー⇒”まとめ”SheetのB列に貼り付け ⇒”Cycle3”SheetのA列をコピー⇒”まとめ”SheetのC列に貼り付け ⇒”Cycle4”SheetのA列をコピー⇒”まとめ”SheetのD列に貼り付け ・・・。 現在は、上記の内容を手動でやっており、シート数が多い場合大変です。 よろしくお願いします。

  • 複数シートからデータを抽出したい

    教えてください。 複数のシートから同じデータを抽出したいのです。 各々シートの行、列データは等しくない状態となっております。 4行目から○○を検索し、一致するものがあれば”固定のB列”と一致した列を抽出する、をシート2、3と繰り返して統合されたシートを完成させる、という流れにしたいのですが最終行の取得、そこから続きにコピーというイメージまではわかるのですが固定のB列と一致した列を抽出させる方法がわからないのです。 どのような処理で実行できるでしょうか?

  • 複数のシートから重複するデータを別シートに抜き出す

    こんにちは。 Excel2007です。 複数のシート(現在はSheet1からSheet4ですが、最終的にはSheet10ぐらいまでになります)に蔵書データが入っています。 A列21行目から作者名、B列21行目から本のタイトル、C列21行目からページ数と以下、値段、ISBNなどJ列まで蔵書データが入っています。本棚ごとにSheet1、Sheet2と分かれて入力されています。 この複数のシートから本のタイトルが重複するものを別シートに抜き出すにはどうしたらいいでしょうか? 重複データを削除するマクロや関数は探せたのですが、複数のシートにまたがっている場合は探しきれませんでした。 何かいい解決方法があればご教授下さい。

  • エクセル:複数シートの一括処理

    お世話になります。 エクセルで1つのブックに複数のシートがあります。 書式は同じですが行数がそれぞれ違います。 A列で、データが入力されている一番下のセルの次の行から、エクセルの最終行である65536行までの行を全て選択して「削除」をしたいのです。(行の削除)しかも全シート一括で。 A列でデータが入っている一番下のセルがA550だった場合、551行~65536行までを全て選択→削除を行う。 これらの作業をするためのマクロを教えてください。

  • 複数のワークシートから循環してペースト

    エクセルのマクロについて質問です。 複数のワークシートを循環して貼り付けれるマクロを作りたいのですが わかる方教えてください。 やりたいことは、sheet1のD列の3行目の数値を空白にまでコピーし、別ブックのsheet1のB列の4行にはりつけし 次にもとのブックのsheet2のD列の3行目の数値を空白にまでコピーし、別ブックのsheet2のB列の貼り付けた最後尾に貼り付けし また、もとのブックのsheet3のD列の3行目の数値を空白にまでコピーし、別ブックのsheet3のB列の貼り付けた最後尾に貼り付け という作業を循環してほしいです。 よろしくお願いします。

  • EXCELで1シートのデータを複数シートにコピー

    あるひとつのシートにあるデータリストを他のシートへデータひとつにつき1シートへコピーしていきたいのですが、簡単な操作でできませんか(マクロ等) シート1     A   1 159   2 200   3 145 のコピー元に対し、(1)(2)(3)の3つのシートのそれぞれ特定のセル位置にコピーし、以下のようにする シート(1)     B   2 159 シート(2)     B   2 200 シート(3)     B   2 145 という感じにします。 よろしくお願いします。

専門家に質問してみよう