• 締切済み

複数のエクセルファイルからデータを抽出してリスト化

あるフォルダ内(C¥sample)内に複数のエクセルファイルがあり(ファイル名はばらばら)、そのファイル全てに「報告書1」というシートが存在します。その「報告書1」というシート内のデータをまとめた一覧表を新規エクセルファイルに作成したいと思っています。 1つ目のファイルの報告書1シートのA2~F5のデータを一覧表エクセルA2~F5まで貼付け、2つ目のファイルの報告書1シートのA2~F5のデータを一覧表エクセルA6~F9まで貼付けという具合にまとめていきたいです。マクロで簡単にひとまとめにするいい方法はありませんでしょうか。ご教授お願いいたします。 例)報告書1シート A B     C      D     E    F 1 受付  支店    受注先    品物   数量  金額 2 0001 北海道   ●●      リンゴ    1   100 3 0002   北海道   ●●      リンゴ    2 200 4 0003   東北    ▲▲      みかん   1 150 5 0004   東北    ▲▲      みかん   2 300

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

VBAといわずkマクロなんていているのはVBAの初心者と思っている。 毎週ぐらい繰返しているFAQだが、質問を文章で書くだけの、丸投げになっている。 課題としては質問者には速すぎるのだろう。 それですべてのコードを挙げることは避けた。 こういう要素に分解して認識できるようになれ。 (1)在るフォルダ内のエクセルファイル(拡張子xlsなど)をすべてとらえる Googleで「エクセルVBA フォルダ 全ファイル名 取得」で照会すること http://officetanaka.net/excel/vba/file/file07.htmほか多数あり。 (1’)そのブックを開く (2)その1つのブックのシート名をすべてとらえて、「報告書1」がどうかIF分で判断する。それ以外は処理対象にしない。 参考 Sub test01() For Each sh In Worksheets MsgBox sh.Name If sh.Name = "報告書" Then sh.Activate MsgBox sh.Range("A1") End If Next End Sub (3)(エクセルファイルが)見つかったらデータ範囲をとらえて、コピーしする   (コピー元の).データ範囲は   A データ最終行を捕まえる((End(xlUp).Row)   B CurrentRegionなど使う など (4)いつも決っている、一覧表シートの最終行(End(xlUp).Row)をとらえその次行からへ貼り付ける。この繰り返しできるはず。

01tomiko31
質問者

お礼

回答ありがとうございます。 もっと勉強いたします。。。