こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセルVBA初心者の者です。

マクロの記録でできたコードをいじって、
なんとか動くものができるレベルです。

Aというフォルダに20~40行程度の内容のCSVファイルが
数百個あります。開けてみないと何行あるのかわかりません。

そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。

最初にCSVファイル名を一枚のシートのA列に書き出すところ
まではやれたのですが、それを順番に読み込んでコピペの
流れができません。

CSVファイル名読み込み
読み込んだファイル1つめCSV開く
CSVの20~40行をコピー
別のエクセルファイルのシートに貼り付け
1つめCSV閉じる

読み込んだファイル2つめCSV開く
繰り返し

こういうやり方じゃない方がいいのかもわかりません。

もしかして考え方も違うのでしょうか?

サンプルコード教えていただけるとありがたいです。
よろしくお願いします。

投稿日時 - 2009-02-21 05:32:18

QNo.4735770

すぐに回答ほしいです

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

ファイルの読み込み時にデータ形式によって何かの処理が必要な場合であれば別ですが、先にファイルを一つにまとめてしまい一気に読みこむ方法もあります。

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で開く。

マクロの勉強にはならないかもしれないけど、違う方面で参考になるかと。

投稿日時 - 2009-02-21 10:20:53

お礼

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

投稿日時 - 2009-02-21 13:10:27

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

とか。

投稿日時 - 2009-02-21 07:16:17

お礼

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

投稿日時 - 2009-02-21 13:06:32

あなたにオススメの質問