• ベストアンサー

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

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

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 「まとめ」SheetはSheet見出しの一番左側にあり、Sheet見出しの2番目以降に Cycle1・Cycle2・Cycle3・・・と続いて配置してあるとします。 標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub まとめSheetにコピー() Dim k As Long For k = 2 To Worksheets.Count Worksheets(k).Range("A:A").Copy Worksheets("まとめ").Cells(1, k - 1) Next k End Sub こんなんではどうでしょうか?m(_ _)m

19800717
質問者

お礼

動作確認できました。どうもありがとうございました! 次から面倒だった今回のデータ纏めの仕事が早く片付きそうです。 感謝です★

その他の回答 (3)

  • akito0417
  • ベストアンサー率20% (55/266)
回答No.3

あ、ごめんなさい。 Sheet4→まとめ Sheet→Cycle1 です。

  • akito0417
  • ベストアンサー率20% (55/266)
回答No.2

手順1.Excel起動 手順2.Alt+F11キーでエディタを開く 手順3.開いた画面のVBAProject (ブック名)を右クリック→挿入→標準モジュール 手順4.以下のソースをはりつけ Sub sample()     Dim i As Integer     Dim sheetNum As Integer          ' 画面のちらつき制御     Application.EnableEvents = False          ' シート数取得     sheetNum = ActiveWorkbook.Worksheets.Count          For i = 1 To sheetNum - 1          Worksheets("Sheet4").Columns(i) = Worksheets("Sheet" & i).Range("A:A").Value     Next i     Application.EnableEvents = True End Sub 手順5.名前を付けて保存(Excel 2010の拡張子だとこちらで動かなかったので、.xlsにした方がいいかと。) 手順6.Alt+F8で表示されるウィンドウ→sampleを選択し、実行ボタンを押す まとめシートをみると結果が表示されていると思います。

19800717
質問者

お礼

回答ありがとうございました。 動作確認できました。 他の回答頂いた方もありがとうございました。

回答No.1

VBAの勉強がてら やってみました [Alt]+[F11]VBE 挿入 - 標準モジュール 下記貼り付け Sub シートをまとめる() Dim n As Long Dim i As Long     If ActiveSheet.Name <> "まとめ" Then Exit Sub   n = Application.InputBox("「Cycle○」シートまでありますか?", Type:=1)   For i = 1 To n     Worksheets("まとめ").Columns(i) = Worksheets("Cycle" & i).Range("A:A").Value   Next i End Sub [Alt]+[F8]マクロの実行

関連するQ&A

  • エクセル 複数シートのデータを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列に形式を値にして張り付ける (っというのが私の乏しい知識で考えた方法なのですが、これでは不具合がでますか? もちろん、この方法じゃなくもっといいのがあれば、それをやってみたいです。)

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

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

  • エクセル 複数シートのデータを一つにまとめる

    エクセルに関してお知恵を拝借願えれば幸いです。 一つのファイルに多数の(30~96)シートが存在している エクセルデータがあります。 これらを加工しやすいようにしたいと考えております。 内容としては、 シート1~シート3までは、 同じA列に対し、違う内容が示されており(※1)、 (※1) シート1 A列    B列   C列・・・ 名前α  年齢  住所・・・ シート2 A列    B列   C列・・・ 名前α  血液型 趣味・・・ シート3 A列    B列   C列・・・ 名前α  特技  好物・・・ シート4以降は3シートずつ上記のA列が変わっていきます。(※2) (※2) シート4 A列    B列   C列・・・ 名前β  年齢  住所・・・ シート5 A列    B列   C列・・・ 名前β  血液型 趣味・・・ シート6 A列    B列   C列・・・ 名前β  特技  好物・・・ 作業としては二つあり、 作業1:3つのシートに分かれているデータを先頭のシートに一つにまとめる (シート1) A列    B列   C列   D列   E列   F列   G列 名前α  年齢  住所   血液型  趣味  特技  好物 (シート2) A列    B列   C列   D列   E列   F列   G列 名前β  年齢  住所   血液型  趣味  特技  好物 作業2:上記を一つのシートにまとめる (シート1) A列    B列   C列   D列   E列   F列   G列 名前α  年齢  住所   血液型  趣味  特技  好物 名前β  年齢  住所   血液型  趣味  特技  好物 A列の名前の数が違っていたりして、単純に作業記録のやり方のマクロでは うまくいかず、これらを可能とするマクロについてご助言願えれば幸いです。 よろしくお願い致します。

  • 複数シートから列移動させながら貼り付け

    複数シートの同じ範囲からまとめシートへコピーして2列ずつ移動しながら貼り付ける方法教えてください。 まとめシート、シート2シート3シート4・・・・と複数あり(シート名はばらばら) 各シートのB4:F28の範囲をコピーし(この範囲は各シート同じ) まとめシートへ順に貼り付けたい。 シート2はまとめシートのF4へ、シート3はまとめのH4へ、シート4はまとめのJ4へ・・・と。 シートの名前が毎月変わるのとブック数も複数ありできたらマクロでできないかなぁと考えております。 今は   Sheets(2).Select Range("T7:U85").Select Selection.Copy Sheets(1).Select Range("F4").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False まででこれを1個づつ書いていこうかなやんでおります。 いろいろ調べましたが、どうもマクロの組み合わせ方がいまいち判らないのでエラーばかり出てしまいます。 よろしくお願いします。

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

  • 複数ブックを新しいブックのSheet1にまとめたい

    マクロ、VBAは全くの初心者です。 会社の売り上げのデーターが日付ごとに複数のファイルに分かれていまして、それを1枚のシートに貼り付けようとしています。かなり多くの数があり、最初はコピー貼り付けで行っていましたが数日かかりそうなので調べたところマクロでできるとのことでそれを行ってみましたが、何度やっても何も起こらなかったので質問させていただきます。 参考にしたのはhttp://okwave.jp/qa/q4225063.html でした。 sheet1のセルA1にC:|\・・・と貼り付けましたが拡張子がわからず、いろいろと試しましたが何もおこらず。あと別シートを選ぶの意味が分からなかったのですがいろいろやってみても何も起きませんでした。 近くにパソコンに詳しい方がいないので困っています。 できれば詳しく馬鹿でもわかるようにやり方を教えてくれたらありがたく思います。 さらになんですけど入力した際にデータが入っている前の列に日付をそのまま入れられたら本当に助かるのですが・・どこまでexcelでおこなえるかがわからないので・・・ どなたか詳しい方がいらっしゃいましたらお願いいたします。

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

  • 複数シートへのリンク貼り付けについて

    エクセルマクロ勉強中です。 シート1のセルA2の値をシート2のセルA1にリンク貼り付け。シート2のセルA2の値を シート3のセルA1にリンク貼り付け。このスタイルでシートを増やして行った時、それぞれのシート間でコピー、リンク貼り付けをしなくても自動的にコピー、リンク貼り付けが出来るマクロがあれば教えて下さい。 又、各シート名を変更してもリンク貼り付けの設定が変わらないように出来るでしょうか?

  • 複数シートからのデータ検索、コピー

    シートから条件に合致するデータを検索して、別ファイルの新しいシートにそれぞれ必要なデータ部分だけをコピーしたいのですが、検索するシートも複数で、また検索条件も複数のためか、過去の質問等を見ましても良く分かりませんでした。(マクロ等は余り使ったことが無い初心者です。)そこで、どなたかお詳しい方に教えて頂ければ、と思いまして投稿致しました。 シートは”貸借対照表”と”損益計算書”の2つあります。 抽出データは4行目からなのですが(A4から)、A列:コード(数字)、B列:勘定科目(文字)、C列:繰越額(数字)、D列:借方額(数字)、E列:貸方額(数字)、F列:残高(数字)、G列:比率(%)となっております。 各シートの構成として、A列は三桁または四桁の数字なのですが、(A4から)A列が三桁の数字の行を選んで、なおかつ、D列とE列が両方とも0で無い行のB列、D列、E列の値を二つのシートそれでれで検索し、別シートにコピーしたいのです。(どちらのシートからでも構いません。A列のコードの値はシート毎ではダブらないので、両方で抽出されたB、D、E列の値が列記できれば良いです。) ただ、2つのシートの列数は決まっておらず、一方のシートの抽出データともう一方のシートの抽出データがダブってコピーされない様に、 したいな、とは思っております。 桁数での検索はLEN関数があるらしいのですが、複数のシートが対象となっており、マクロという機能を使った方が良いのでしょうか? 当方も初心者ゆえ、分かりやすく教えて頂ける方、よろしくお願い致します。

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

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

専門家に質問してみよう