• 締切済み

VBAでデータを縦結合する方法

A.xlsというExcelブックにSheet1~Sheet35があります。 各シートには以下のような同じフォームのデータが入っています。 XXXX部分と生徒数はデータごとに異なります。 生徒氏名 国語 数学 理科 社会 英語 XXXX XX XX XX XX XX XXXX XX XX XX XX XX   :   :  :  :  :  : XXXX XX XX XX XX XX XXXX XX XX XX XX XX XXXX XX XX XX XX XX いま、Sheet1の前に「併合」というシートをつくり、 そのシートに Sheet1のデータ Sheet2のデータ Sheet3のデータ : Sheet35のデータ というようにすべてのデータを縦に結合した結果を出力したいと考えています。 これを書くためのVBAコードを教えていただけないでしょうか。 よろしくお願いいたします。

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

「併合」と言うシートを作成した後に実行。 Sub try() Dim ws As Worksheet Dim rr As Range, rs As Range Set rr = Worksheets("併合").Range("A1") For Each ws In Worksheets If ws.Name <> "併合" Then Set rs = ws.Range("A1").CurrentRegion rs.Copy rr Set rr = rr.Offset(rs.Rows.Count) End If Next Set rr = Nothing Set rs = Nothing End Sub ご参考まで。

関連するQ&A

  • エクセルでの処理方法を教えてください

    例えば、 ○○店 XXXX-XX-XXXX △△屋 XXXX-XX-XXXX ・ ・ ・ となっているデータがあるとしてそれをエクセルで表にしたい時、どのようにしたらいいと思いますか? ○○店  XXXX-XX-XXXX △△屋  XXXX-XX-XXXX 縦に繋がっているデータを横にしたいのです。 XXXX-XX-XXXXは電話番号です。 それ以外に住所などもあります。 最終的にはすべて情報をを一つのシートにして検索などもしやすいようにしたいです。 VBAなしで作るにはどうしたらいいと思いますか? 良いアイディアがあったら教えてください。 バージョンは2000です。

  • excel vba

    テーブル情報に基づきシートをコピーするVBAマクロを記述したい。 ExcelのBook111のSheet1に次のような データが入っています。 (1、2)セルにn=3という数字が入っているものとします。 その数値に合わせて、この場合は3なので Sub Sample01() Workbooks("Book3.xls").Worksheets("booksheet3").Copy After:=Workbooks("Book111.xls").Sheet(1) End Sub のようなつまり、booksheet3なるシートをBook111(固定なBOOK)にコピーしようとしています。 このようなことをVBAで書くにはどうすればいいのでしょうか。 ただしBook名とシート名はあくまでデータの値にもとづいたデータをもってくることになります。 要するに間接参照したデータに基づき処理するのをどのように記述するかという質問です。 A列 B列 1 回数 n=3 2     3     4 Book1.xls book1sheet ←n=1 5 Book2.xls book2sheet ←n=2 6 Book3.xls book3sheet ←n=3 7 Book4.xls book4sheet 8 Book5.xls book5sheet 9 Book6.xls book6sheet ←n=6 10 Abc,xls Defsheet ←n=7

  • 複数のブックのデータを一つのブックにまとめたい

    http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page1.htm ↑の 7. 指定したフォルダ内にあるExcelファイルを検索して開く の部分のマクロを利用して、集計.xlsというブックで、複数のブックを開くようにしましたが、そのブックを開いた時にそのブックのSheet2の中のデータのみコピーして、集計.xlsに貼り付けたいのですが、どのようにすればよいのか困っています。 指定したフォルダの中には、回答01.xls 回答02.xls ・・・と16個のブックがあります。順番に開いてコピーをするときに、どのようにブック名とシート名を指定すればよいのかわからず困っています。 何か参考になるものがあれば教えてください。 よろしくお願いします。

  • エクセル 他ブックからデーターの参照。

    一つのブックに名前が1、2、3~31と31枚シートがあって、月毎にブックを分けて管理している 物があるのですが、ほぼすべてのデーターが前日のデーターを必要としており、月が替わった 1日のデーターで前月のデーターを取得する際、 『 =[23-01.xlsx]31!XX 』 といった感じでデーターを拾ってきてます。その翌月は 『 =[23-02.xlsx]28!XX 』 という風になるのですが、23-01を23-02へ、31を28へと 置き換えるのに数も多く非常に時間がかかって困っています。 ※ XXは任意のセル。 上手く言葉で表現できないのでイメージですが (A1のセルに 23-01.xls を入力)(A2のセルに 31 を入力)で 『 =[A1]A2!XX 』と入力したら23-01.xlsの31というシートからXXデーターを 取得するといった風な感じの事を行う方法は無いのでしょうか? ○○関数でこうすればとかVBAでこうすればとかあれば知恵をお貸しいただけると 助かります。 よろしくお願いします。

  • EXCEL VBA コピー貼り付け時のチェック

    お世話になります。田中と申します。 VBAの練習で下記の操作を実現したいと思っておりますが、どうしたらよいのか分りません。 A.xlsというブックがあります。 A.xlsの[データ]というシートにボタンをおいてそのボタンをクリックしたら以下のような動作をしたいのです。 このA.xlsの[データ]シートのA1~L20までをコピーして、C:\Users\田中\DesktopにあるB.xlsというブックの[シート1]という名称の単にシートに貼り付けしたいのです。 ただし貼り付け時に他のユーザーがB.xlsを開いている場合は、貼り付け処理を中止したいのですが、そのようなユーザーに開かれているかどうかVBAでチェックする方法はありますでしょうか? どなたかお知恵をお借りできますでしょうか。 よろしくお願い致します。 環境 Windows7 Excel2013

  • ExcelのVBAについてです。

    例えば"Book1.xls"という名前のブックの"Sheet1"という名前のシートの一部を削除する。 これをVBAでやらせようと思うんですが、"Book1.xls"を開かずに行うことはできるんでしょうか。 Workbooks("Book1.xls").Worksheets("Sheet1").Range("C7:M51").ClearContents のようにしてるんですがうまくいきません。 "Book1.xls"はLAN上のブックで実際はフルパスで指定してます。 よろしくお願いします。

  • Excel 結合について

    Excel2000を使用しています。 データが入っているシートがあります。 ある1つの列について、下の行を見て、次の文字があるところまで、次々とセルの結合を行いたいのですが、VBAを教えてください。 よろしくお願いいたします。

  • Excel VBAを使って、Excelデータを別のExcelファイルに取り込みします

    報告書にexcel VBAを使って、(報告書を開いたまま)報告書のデータを別のexcelファイル(一覧)に取り込みします。 Sub k() Dim ブック As Workbook Set ブック = Workbooks.Open("c:\テスト\" & "一覧.xls") ブック.Worksheets("Sheet1").Cells(3, 2) = Worksheets("企業情報シート").Cells(3, 3) End Sub 報告書の"Worksheets("企業情報シート").Cells(3, 3)"は書き方がおかしいみたいで、正しい書き方を教えてください。

  • 異なるブックを結合した時のセル参照

    excel2003 異なるブックを結合した時に、セルの値を参照する方法を教えてください。 条件は、下記の通りです。 a.xlsのsheet1のA1セルのセル名称をnameとします。 b.xlsのsheet2のA1セルで=nameとします。 aとbのファイルを結合した時、a.xlsのsheet1のA1セルに何か文字列…(1)を入れた時、 sheet2のA1セルで(1)の文字が参照できる様にしたい。 同一ブック内で上記の内容実施時は、sheet2のA1セルでsheet1のA1セル参照可能ですが、 ブックを結合した時、excelの仕様なのか、 #REF!と表示されてしまいます。 最初から一緒になったファイルで作成すれば問題ないのですが、 aのファイルは共用なので、使用する時に結合する構成としているのです。 異なるブックを結合して上記の対応が可能になる方法はないものかどうか、 何か、他の代案はないかアイデアいただきたく。

  • Excel VBA 検索して該当行を抽出

    はじめまして、下記のように、Excelでマクロを組みたいのですが 組み方がわかりません。 ご教授願えませんでしょうか。 MS Ofiice2010 生徒数500名ほど シート1には生徒の生徒番号、氏名などがあります。      A     B     C     D 1 生徒番号   氏名   備考 2 120001     田中 3 120002     山田  試験時休み 4 T120009    相田   転入 シート2には生徒の成績表:生徒番号、氏名、国語、算数、理科、社会 生徒番号でソートされていません。      A     B     C     D     E     F    1 生徒番号   氏名   国語   算数   理科   社会   2 120001     田中   80    65     65     75 3 T120009    相田   90    85     80     80 シート1の生徒番号でシート2生徒番号を検索して、該当したら成績を シート1の検索した生徒番号のD列以降にコピーしたいのですが      A     B     C     D     E     F     G 1 生徒番号   氏名   備考   国語   算数   理科   社会 2 120001     田中         80    65     65     75 3 120002     山田  試験時休み 4 5 10 T120009    相田   転入    90    85     80     80 お手数ですが、ご教授願えますでしょうか。 よろしくお願いいたします。

専門家に質問してみよう