アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。VBAについて質問させてください。
当方まだ勉強し始めたばかりのかなりの初心者です。
見当違いの質問かもしれません…
どなたかご教授よろしくお願い致します。


以下のようなcsvファイルがあります。

Andou,tokyo,25,
andou,aichi,16,
iijima,fukushima,22,
----以下略------


「名前」「出身地」「年齢」の順に
並んでいるだけのファイルです。
これを
「出身地」「年齢」「名前」の順に
並べ変えたいのですがどうしたら良いでしょうか?


(1)一度シートにcsvファイルを読み込む
(2)シート上で列をcut,pasteで並び替える

なら方法は分かるのですが、
csvファイルが物凄く長いため
シート上にcsvファイルを読み込めない状況です。
どうしたらよいのでしょうか?

何かアドバイスだけでもあれば教えて下さい。
なにとぞ宜しくお願い致します。

A 回答 (2件)

エクセルで(長くて)読み込めないのだから、エクセルでやる必要もないと思います。


VBScriptで、
以下の様にconv.vbsとして保存して実行すると
data.cvsをdata_cnv.cvsとして変換出力します。
---------------------------------------------------------------
Dim fso, inf, outf, aLine, field, wk

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set inf = fso.OpenTextFile("data.csv",1)
Set outf = fso.OpenTextFile("data_cnv.csv",2,true)

Do until inf.AtEndOfStream
aLine = inf.ReadLine
field = split(aLine,",")
'列の並び替え
wk=field(0)
field(0)=field(1)
field(1)=field(2)
field(2)=wk
aline = join(field,",")
outf.WriteLine(aline)
Loop
inf.Close
outf.Close
    • good
    • 1
この回答へのお礼

なるほどです!VBScriptsで書いてしまうんですね。
盲点でした・・・ありがとうございました。
VBScriptsの本かってみて、教えて頂いたプログラムをちゃんと勉強してみました。
VBScriptsってとっつきやすいんですねw
助かりました。本当にありがとうございました。

お礼日時:2005/11/03 00:43

>>csvファイルが物凄く長いため


>>シート上にcsvファイルを読み込めない状況です。

VBAは組んだ事がないので状況はわかりませんが
Cでソートのプログラムを書くのは面倒でした。

件数が多いならAccessでそのまま読込んでテーブルを作成し
検索クエリーで出身地にソートを設定させます。
    • good
    • 0
この回答へのお礼

なるほどです。Accessつかったほうがいろいろ出来るし、簡単そうですね。アドバイスありがとうございました♪

お礼日時:2005/11/03 00:44

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