3000行くらいあるCSVファイルを100行ずつ別ファイルに保存する作業をしています。エクセルで100行をドラッグで選択>切り取り>シートを新規作成し貼り付け>保存 という手順でやっているのですが、もっと効率的な方法はないでしょうか?(たとえば100行を一発で指定する方法、CSVファイルを指定行数ごとに分割する方法、ソフトなど)よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答9件)

id:puppeteer No.1

回答回数7ベストアンサー獲得回数0

ポイント5pt

http://www.sigoto.co.jp/excel/

Excel全開VBA

VBAなどのマクロで処理するといった方法は駄目なのでしょうか?

この程度の処理ならば簡単なものでできるはずですが。

id:kuwa-zow No.2

回答回数5ベストアンサー獲得回数0

ポイント5pt

ExcelVBA組まれてみてはいかがでしょうか?全作業自動化できると思います。

id:tarosa21 No.3

回答回数81ベストアンサー獲得回数0

ポイント5pt

http://www.vector.co.jp/soft/win95/util/se092176.html

Vector:テキストユーティリティ TU32 (Windows95/98/Me / ユーティリティ) - ソフトの詳細

CSVファイルといっても結局テキストファイルです。テキストファイルを指定行数ずつに分割するユーティリティを利用してはどうでしょうか。(URLは一例)

エディタでもマクロが利用できるものなどで分割可能だと思います。

id:blackant No.4

回答回数30ベストアンサー獲得回数0

CSVファイルをメモ帳で開いて(CSVファイルなので、開くときにファイルの種類を「すべてのファイル」にしないと見えませんが)、

100行ずつ切り取り

メモ帳を新規作成

貼り付け

名前をつけて保存して閉じる

最初へ戻る

という方法じゃだめですか?

Windowsのバージョンによっては、メモ帳が貧弱で大きなファイルを読み込めないので、フリーのテキストエディタをインストールしたほうが作業がはかどると思います。

無料のテキストエディタ ”EdLeaf” をご紹介いたします。

私は普段は EmEditor v3 を愛用しているのですが、有料なので・・・。

EdLeafのダウンロードはこちらからどうぞ。

id:Taka_Joker No.5

回答回数45ベストアンサー獲得回数0

ポイント75pt

VBSなりawkなりを使えば、ファイルを1行読んで、そのまま別のファイルへ出力して、100行ごとに切り替えればいいわけなので、簡単に実現できると思いますが、とりあえずフリーでURLのようなソフトもあります。

id:xtra No.6

回答回数43ベストアンサー獲得回数1

ポイント5pt

http://denchu.jp/tips/tips05.html

TIPS05 - CSV ファイルの行分割 -

単純に検索かけたらこんなん出てきましたよ。

id:beluga1221jp No.7

回答回数6ベストアンサー獲得回数0

ポイント5pt

UNIX由来のユーティリティで ”head”, ”tail”コマンドを使って、指定行数を切り出します。

1.最初の100行 # head -100 元のファイル.CSV > 分割後001.csv

2.次の100行 # head -200 元のファイル.CSV | tail -100 > 分割後002.csv

3.次の100行 # head -300 元のファイル.CSV | tail -100 > 分割後003.csv

のようにします。

テキストファイルを扱う場合、UNIX上で取り扱うととっても簡単にできます。

http://www.vector.co.jp/soft/dos/util/se007619.html?site=n

Vector:head/tail (MS-DOS / ユーティリティ) - ソフトの詳細

MS-DOSで動く head, tailです。

WindowsでUNIXの環境を実現するCygwinです。

基本ユーティリティとして、head,tailが含まれている。(はずです)

id:tamshi No.8

回答回数16ベストアンサー獲得回数0

ポイント10pt

http://www.hatena.ne.jp/1060699077#

3000行くらいあるCSVファイルを100行ずつ別ファイルに保存する作業をしています。エクセルで100行をドラッグで選択>切り取り>シートを新規作成し貼り付け>保存 という手.. - 人力検索はてな

 Sub オートシェイプ1_Click()

Dim i, t

Open ”ReadFileName ” For Input As #1

Open ”WriteFileName” For Output As #2

Do Until EOF

For i = 1 To 100

Line Input #1, t

Print #2, t

Next i

Loop

End Sub

エクセル上にオートシェイプの図形を何か適当に貼り付けて、右クリック-マクロ-新規作成で、こんな風にしてはどうでしょう?EOFの検出が違ったかな?

id:junpei0219

急いでいたので個別にコメントできずすみません。

無事解決いたしましたので終了させていただきます。

2003/08/13 11:40:58
id:satena No.9

回答回数3ベストアンサー獲得回数0

ポイント10pt

GUIでできたほうがよいならこれで可能です。

ただ、行数指定で2分割しかできないので

1.100行目までと101行目からに分割。→二分割_前.csvと二分割_後.csv

2.二分割_後.csvを100行目までと101行目からに分割。→二分割_後二分割_前.csvと二分割_後二分割_後.csv

3.・・・

と繰り返す必要がありますが。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません