dポイントプレゼントキャンペーン実施中!

EXCELで、あるフォルダ(例:Dir1)に格納されている複数のCSVファイルを読み込んで、そのファイルの1行目をコピーし、別ファイル(a.csv)にペーストしたいと思っております。
例えば、Dir1には1.csv,2.csv,3.csvの3つのCSVファイルが存在した時に、a.csvに出力されるのは、

-----------------------------------
1.csvの1行目
2.csvの1行目
3.csvの1行目
-----------------------------------

となるのが、理想の形です。
方法を知っている方がいらっしゃったら
お教えいただければと思います。

A 回答 (2件)

簡単に作ってみました。



Sub Macro1()
Dim FolderName As String

FolderName = "C:\dir1" 'csvが入ってるフォルダまでのパス

'ファイル検索
With Application.FileSearch
.NewSearch
.Filename = "*.csv" '.csvを全て検索
.FileType = msoFileTypeAllFiles
.LookIn = FolderName 'csvが入ってるフォルダを検索対象
.SearchSubFolders = False
.Execute '検索実行

'検索結果が0の場合終了
If .FoundFiles.Count = 0 Then GoTo Exit_GetTextInformation

FNum = FreeFile 'ファイル番号確保

'新規csv作成
Workbooks.Add

For i = 1 To .FoundFiles.Count

'csvファイルから一行目を取得
Open .FoundFiles(i) For Input As FNum

Line Input #FNum, Buff

Close FNum

'テキストファイルの情報をa.csvに書き込み
Cells(i, 1) = Buff '一行目

Next i

End With

'a.csvという名前で同階層に保存
ActiveWorkbook.SaveAs Filename:="C:\dir1\a.csv"

ActiveWorkbook.Close


Exit_GetTextInformation:

End Sub

こいつをボタンに組み込んでみてください。
適当に作ったので修正必要かもしれません。。。^^;
ご参考までに。
    • good
    • 0
この回答へのお礼

ありがとうございました!
バッチリイメージどおりの形でファイルが
作成されました。
これで作業もはかどります。

お礼日時:2006/05/18 17:25

単純ですけど、CSVファイルはテキストファイルだから、Wordなどで3つのファイルを読み込んで、それぞれの1行目をコピー&ペーストして保存すればいいですよね。



なお、Wordで書式なし(テキスト形式)で保存したら、拡張子は.txtになるので、そこだけはファイル名の変更をしなければなりませんが・・・

この回答への補足

早速のご連絡ありがとうございます。
説明が不足しておりましてすいません。。。
今回作ろうとしているものは、Excel上にフォームで
ボタンをつけて、そのボタンをクリックすると
あるフォルダにあるCSVファイルを全て読み込み
1つのファイルを作成するという仕様になっているのです。
ご指摘の方法ですと、少々厳しいかと思っております。

補足日時:2006/05/18 15:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!