CSVファイルの特定の行の出力方法No.05832
ょぅへぃ さん 08/03/12 20:21
 
マクロの初心者なのですが、質問があります。

とあるCSVファイルの、とある列の文字列を読み込み、該当する場合、その列をファ
イルに出力するマクロはどのように組めばよろしいでしょうか?

----------------------
aaa,111,ccc,ddd
eee,222,fff,ggg
hhh,333,iii,jjj
kkk,222,aaa,fff
----------------------

例えば、このファイルで、
2列目が、
111であれば「A.csv」、
222であれば「B.csv」、
333であれば「C.csv」・・・
といったイメージです。

この場合、B.csvの中身は、
----------------
eee,222,fff,ggg
kkk,222,aaa,fff
----------------

となる事になります。


2列目に出てくる可能性のあふ「文字列」および「出力ファイル名」は、
ポップアップ等で入力するのではなく、
予めマクロの中(もしくは外部ファイルの中)で指定しておく形で問題ないです。

さらに、もし出力ファイルが設定した行数を超える様な場合、
出力ファイルを分割したいと考えています。
例えば、A_1.csv、A_2.csv
・・・といった風に。

ご教授の程、よろしくお願いします。

[ ]
RE:05832 CSVファイルの特定の行の出力方No.05835
h-tom さん 08/03/12 23:12
 

h-tom です。

>マクロの初心者なのですが、質問があります。
>
>とあるCSVファイルの、とある列の文字列を読み込み、該当する場合、その列をファ
>イルに出力するマクロはどのように組めばよろしいでしょうか?
現在のファイルを対象にするなら、localgrep で、"^[^,]+,222,.+"で検索し、
余計な出力があるので、消して saveas で保存する。
あとは検索する内容を変更し、繰り返す。

searchdown等で探す方法もあるけど。

>さらに、もし出力ファイルが設定した行数を超える様な場合、
>出力ファイルを分割したいと考えています。
>例えば、A_1.csv、A_2.csv
>・・・といった風に。
linecount/linecount2で行数確認して、先頭行から、切り取りたい行数まで選択し、
切り取り、新規ファイルに貼り付けて、保存。
を繰り返す。
でも、探せばそのような機能をもったソフトがありそうな気もします。

[ ]