• 締切済み

かなりの行数のcsvデータを30行毎に分割して保存したいのですが

突然のご質問失礼いたします。 現在、55000行程の行数のあるcsvファイルがあるのですが、それを30行に区切り、保存したいと考えております。 「マクロを組めば出来ますよ」というご意見を頂きましたが、 マクロなどの知識がまったく無いため対応に困っております。 もし宜しければ貴重なご意見いただければと思います。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

VBAかVBを勉強すればできますよ。WEBでも調べて勉強すべきです。 ほかには操作を数千回人手で繰り返さないとできません。それがイヤなら質問に限った点のプログラムの勉強すべきです。「全く知りません」と再質問するのは甘えです。 こんな質問に(というより丸投げの依頼)に負けて、1つの解き方の例を挙げます。しかし回答例を見ても判らなければ、あきらめるべきだ。 例データ 分割.csv a1,b1 a2,b2 a3,b3 a4,b4 a5,b5 a6,b6 a7,b7 a8,b8 a9,b9 a10,b10 a11,b11 a12,b12 a13,b13 a14,b14 a15,b15 a16,b16 16レコード、2項目の例に矮小化。 分割数も3レコードに1ファイルに少数化した。 ーー コード Sub test01() i = 1 Open "C:\Documents and Settings\XXX\My Documents\分割.csv" For Input As #1 Open "C:\Documents and Settings\XXX\My Documents\aa" & Trim(Str(i)) & ".csv" For Output As #2 c = 0 While Not EOF(1) Line Input #1, a Print #2, a c = c + 1 If c = 3 Then Close #2 c = 0 i = i + 1 Open "C:\Documents and Settings\xxx\My Documents\aa" & Trim(Str(i)) & ".csv" For Output As #2 End If Wend Close #1 Close #2 End Sub ーー 結果 メモ帳で確認 aa1.csvは a1.b1 a2,b2 a3,b3 --- aa2.csvは a4.b4 a5,b4 a6,b6 --- ・・・ ーー aa6.csvは a16,b16 --- 30レコードごとに分割は If c = 3 Then をIf c = 30 Then にすればよいはず。アウトプットファイル名の変わらない部分はaaの部分を変えれば変えられる。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>「マクロを組めば出来ますよ」というご意見を頂きましたが、 ということはエクセルでということでしょうか。 55000行を30行に分けると1834ファイル(或いはシート?)にも なりますが? 55000行のデータを基準として、必要な部分だけ取り出せるような 或いは、集計できるような方法を考えたほうが良いと思います。

関連するQ&A