• ベストアンサー

エクセルVBAでCSVを読み込んで別ファイルにまとめたいです。

エクセルVBA初心者の者です。 マクロの記録でできたコードをいじって、 なんとか動くものができるレベルです。 Aというフォルダに20~40行程度の内容のCSVファイルが 数百個あります。開けてみないと何行あるのかわかりません。 そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。 最初にCSVファイル名を一枚のシートのA列に書き出すところ まではやれたのですが、それを順番に読み込んでコピペの 流れができません。 CSVファイル名読み込み 読み込んだファイル1つめCSV開く CSVの20~40行をコピー 別のエクセルファイルのシートに貼り付け 1つめCSV閉じる ↓ 読み込んだファイル2つめCSV開く 繰り返し こういうやり方じゃない方がいいのかもわかりません。 もしかして考え方も違うのでしょうか? サンプルコード教えていただけるとありがたいです。 よろしくお願いします。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

ファイルの読み込み時にデータ形式によって何かの処理が必要な場合であれば別ですが、先にファイルを一つにまとめてしまい一気に読みこむ方法もあります。 http://www.relief.jp/itnote/archives/001770.php http://www.relief.jp/itnote/archives/002775.php コマンドプロンプト上でCOPYコマンドやTYPEコマンドですべてのファイルを結合する事が出来ます。 http://can-chan.com/vba/filemei-itiransakusei.html エクセルのマクロでシート上にフォルダー内のCSVファイルの一覧を取得 セルの中身を copy 纏めるファイル名.CSV + 取得したファイル名.CSV に変更しTEXTファイルとして保存、名前の変更でBATファイルに変更して目的のフォルダー上で実行すれば1つのファイルとなりますので、そのままExcelで開く。 マクロの勉強にはならないかもしれないけど、違う方面で参考になるかと。

aerogoo001
質問者

お礼

ありがとうございます。 全く考えつかない方法でした。 自分の頭のガチガチっぷりを痛感させられました。 試してみたいと思います。

その他の回答 (1)

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

大量のCSVデータを1つのエクセルデータにまとめる方法について http://oshiete1.goo.ne.jp/qa3168255.html とか。

aerogoo001
質問者

お礼

ありがとうございます。 観念して手作業でやるところでした。 挑戦してみます。

関連するQ&A