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

締切り済みの質問

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
------------------

よろしくおねがいします。

投稿日時 - 2011-06-17 20:08:06

QNo.6816637

困ってます

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

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

回答(1)

ANo.1

エクセルにデータを持ってきたとき、列的に、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 フォルダ ファイル すべて」で照会すること。

投稿日時 - 2011-06-17 21:37:48

お礼

ありがとうございました。

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html

http://www.cocoaliz.com/excelVBA/index/30/
を参考にコードできました。

投稿日時 - 2011-06-20 18:33:08

あなたにオススメの質問