- 締切済み
excel vbaのファイルコピー
あるフォルダに次のようなテキストデータ(*.csv)が50個入っています。 ファイル名:aaa.csv bbb.csv ccc.scv など ファイルの中身--- "aaa.csv" time,value 0.1,10 0.2,32 0.3,33 0.4,45 ---------------- それを次のように一つのエクセルファイルにまとめたいのですが、どうすればよいでしょうか? ----------------- A B C D E F 1 "aaa.csv" "bbb.csv" "ccc.scv" 2 time value time value time value 3 0.1 10 0.1 23 0.1 23 4 0.2 32 0.2 11 0.2 55 5 0.3 33 0.3 43 0.3 11 6 0.4 45 0.4 76 0.4 23 ------------------ よろしくおねがいします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルにデータを持ってきたとき、列的に、50個の順序は決っているのか? その順序に従って、CSVファイルを読み(Line Input#1の方法)、1レコード文文字列を、カンマでSplit関数にかけて分離して セルの列に上行からセットしていく。 列はファイルが変わるごとに2列右へ移すCells(i,j)のJを+2する。 CSVファイルをレコードごとに読むのは Googleでも、「vba csvファイル読み込み]で照会すると沢山記事がある。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_020.html Input#を使う方法 Sub test01() Open "aaa4.csv" For Input As #1 Dim x(3) gyou = 0 Do Until EOF(1) ' レコードを読み込む(このサンプルは4項目のCSV) Input #1, x(0), x(1), x(2), x(3) '行を加算しA~d列にレコード内容を表示(先頭は2行目) GYO = GYO + 1 Range(Cells(GYO, 1), Cells(GYO, 4)).Value = x ' 配列渡し Loop ' 指定ファイルをCLOSE Close #1 End Sub これをファイルごとに繰返す。 フォルダ内に対象ファイルがある(まとまっている)なら Googleで「VBA フォルダ ファイル すべて」で照会すること。
お礼
ありがとうございました。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html と http://www.cocoaliz.com/excelVBA/index/30/ を参考にコードできました。