複数のCSVファイルを1つにまとめる方法

このQ&Aのポイント
  • EXCELで複数のCSVファイルを読み込み、1つのファイルにまとめる方法を教えてください。
  • Dir1に格納されている複数のCSVファイルの1行目をコピーし、別ファイルにペーストしたいです。
  • 例えば、Dir1に1.csv, 2.csv, 3.csvの3つのCSVファイルがある場合、a.csvにはそれらの1行目がまとめられます。
回答を見る
  • ベストアンサー

複数のCSVファイルを1つのファイルにまとめる方法

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行目 ----------------------------------- となるのが、理想の形です。 方法を知っている方がいらっしゃったら お教えいただければと思います。

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

  • ベストアンサー
  • bitsu
  • ベストアンサー率34% (39/113)
回答No.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 こいつをボタンに組み込んでみてください。 適当に作ったので修正必要かもしれません。。。^^; ご参考までに。

tatsuyapapa
質問者

お礼

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

その他の回答 (1)

  • handomari
  • ベストアンサー率47% (83/174)
回答No.1

単純ですけど、CSVファイルはテキストファイルだから、Wordなどで3つのファイルを読み込んで、それぞれの1行目をコピー&ペーストして保存すればいいですよね。 なお、Wordで書式なし(テキスト形式)で保存したら、拡張子は.txtになるので、そこだけはファイル名の変更をしなければなりませんが・・・

tatsuyapapa
質問者

補足

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

関連するQ&A

  • 複数のcsvファイルを1つのEXCELファイルにマージするVBAを教えてください

    csvファイル数は700~1000個程度でひとつのフォルダに格納されています。 このファイルをEXCEL形式で開くと、1行目にフィールド名(A~Z列で固定)、2行目以降にデータが入っています。行数はファイルにより1~100行程度で変動します。 このファイルを1つのエクセルファイルの同一シートに結合(マージ)するVBAがほしいです。 ここで、(できればですが)EXCELにマージするにあたり、1行目のみフィールドの値、2行目以降にそれぞれのcsvの2行目以降データの値を入れていくようにしたいです。つまり、フィールド名の行が何行も出てくるのを避けたいです。 申し訳ございませんが、ご指導いただけたら幸いです。よろしくお願いします。

  • excel vbaで複数のcsvファイルの読み込み

    100シート分のcsvファイルのデーターを一つずつ読み込んでexcelにコピーして使用してますが莫大な時間がかかって困ってます。 vbaを使用して作業を簡素化出来る事は出来ないでしょうか? ------------------------------------------ ※ csvの概要 excelで1枚のcsvファイルを開くとA列の11行目から65536行まで数値データがあります。 ※ vbaできたらよいなと思う仕様 そこで、複数のcsvファイルを選択して読み込むとCSV_データと言うSeetのA列の10行目から1枚目のcsvファイル、B列の10行目から2枚目のcsvファイルと言う風に選択した分のcsvを列に続けて数値データを貼り付けしてくれるvbaをご教授していただけると大変助かります。 不躾で申し訳ございませんが宜しくお願い致します。 excel2003 ------------------------------------------

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

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

  • フォルダに入っている複数のファイルをコピーしたい。

    エクセルなのですが、 1つのフォルダに入っている複数のエクセルファイルを 1つのエクセルファイルに(下に付け加えて)まとめたいと思っています。 このようなことをやりたいと思っているのですが、 お力をお貸ししていただけないでしょうか? どのシートも形式は同じなのですが、 1つのエクセルファイルに複数のBookがある場合もあります。 中身としてはA~Z列まであり、また行についてはそれぞれのシートによって異なります。 そして、どのシートに対しても1~3行についてはタイトル等が書いてありますので、 4行目以降でデータが入っているところまで、同じフォルダに用意したファイルに 順番にコピーしていきたいと思っています。 色々と試してみたのですが、どうしても複数のファイルから取り出してくることができなくて、 すみませんがよろしくお願します。

  • csvファイルとexcelをマージ

    定期的にcsvファイルが手元に届きます。csvファイルをそのまま印刷しても見栄えが悪いので前もって表らしい書式のexcelファイルを作成しており(列行幅の設定・タイトル・罫線等)、それにcsvファイルからカット&ペーストして値だけをコピーしています。 excelマクロを組めば自動で可能だとは思うのですが、結構ファイルの種類も多いので汎用的なツールって無いでしょうか?

  • エクセルVBA 一枚のシートにcsvファイルをまとめる 

    教えてください。 以下の処理をしたいのですが、どのようにしたらよいか教えてください。 (1)デスクトップの1つのフォルダに格納しているcsvファイルを全て開く(ファイルがいくつあるかはその時によって違う) (2)開いたcsvファイルのデータがある行を全て選択して、開いてあるデータベースとしてあるシートに貼り付ける。 (これをcsvファイル数分実行する) (3)コピーの終わったcsvファイルを全て閉じる どうしても(2)の処理がわからず、どなたか教えてください。 よろしくお願い致します。

  • エクセルVBAでCSVファイルから取り込みたいのですが・・・

    CSVファイルのデータを取り込むコードを教えていただけないでしょうか。 「共有フォルダ」の中に「作業用.xls」と「090820.csv」があります。csvファイルは日によって名前が変わりますが、必ず一つしか入れないことにしています。 CSVファイルの1行目は見出しです。2行目以降がデータになっています。 A2からI列最終行を「作業用.xls」のsheet1のA6にコピー(取り込み)したいのですが、よろしくお願いします。

  • 複数のcsvファイルをマクロ(VBA)で取り込みたい

    複数のcsvファイルをマクロ(VBA)で取り込みたい csvファイルの中身が、 20090507 120508 osaka 項目1,項目2,項目3,・・・・・,項目10 a1,a2,a3,・・・・・,a10 b1,b2,b3,・・・・・,b10 c1,c2,c3,・・・・・,c10 や 20090507 132529 hokkaido 項目1,項目2,項目3,・・・・・,項目10 d1,d2,d3,・・・・・,d10 e1,e2,e3,・・・・・,e10 f1,f2,f3,・・・・・,f10 となっているcsvファイルが特定のフォルダの中に100以上あります。 このcsvふぁいるの5行目だけをaccessに書き込んでテーブルに追加していきたいと思っています。 項目1,項目2,項目3,・・・・・,項目10 a1,a2,a3,・・・・・,a10 d1,d2,d3,・・・・・,d10 このようなテーブルができればいいのですが・・・ csvファイルを開く→5行目をテーブルに追加→csvファイルを閉じる(削除する)→次のcsvファイルを開く→5行目をテーブルに追加→csvファイルを閉じる(削除する) この流れでいいと思うのですが方法が分かりません。 丸投げですがよろしくお願いします。

  • CSVファイルから テキストに変更

    年賀の整理をしています。 メールアドレスがCSVファイルに入っています。 CSVファイルがこまめに2~30人分の複数になってしまいました。 CSVファイルを一つにまとめるにはどのようにしたらよろしいのでしょうか? ネットでいろいろ検索してみましたが私には理解不能・・・ CSVファイルからテキストに変更の場合 「CSVファイルをメモ帳等で開き、コピー&ペーストで、開いている中の1つにまと め、保存する。」ことはわかっているのですが、CSVファイルの開き方自体がわかりません パソコンは3年ほどやっていますが、エクセルはやったことがありません。 何か簡単にできる方法 どなたかわかりやすく教えてください。お願いいたします。

  • バッチ処理でCSVファイルコピーした後の記号削除方法

    こんにちは。バッチ処理作成初心者です。 Windows XP、エクセル2000 を使用しています。 複数のcsvファイルをバッチ処理(下記)でコピーしました。 copy /y aaa.csv+bbb.csv ccc.csv (結合させるcsvファイルは最大6つありますが、 上記コマンドでは2つのcsvファイルを結合させてます。) コピーしたcsvファイル「ccc」を開くと、必ず最終行A列に "・"という記号が現れます。 この記号を、「ccc」を開かずに削除する方法 もしくは、csvファイルをコピーしても記号が現れない方法を 教えてください。 (「ccc」は行数が最大で18万行を超えるため、いつも ファイルを開いて記号を削除することができません。)

専門家に質問してみよう