プロが教える店舗&オフィスのセキュリティ対策術

たとえば、あるアプリケーションから書き出したCSVが、名前、住所、電話、メール、性別 のばあい、まったく別のアプリケーションで取り込むために 住所、氏名、電話 の順にしたい、と思ったときそれを簡単に実現するフリーウェアなどはないでしょうか。エクセルで開いて順序を入れ替えればできなくはありませんが、煩雑で間違いの元です。毎日のルーチンワークなので、たとえば、アイコンにドラック&ドロップで出来上がるようなものです。取り込みと書き出しの形式をいろいろ変えられるようになっているのが好ましいです。

A 回答 (2件)

う~ん、フリーソフトに頼るのも悪くはないですが


こうやってプログラムすると自分の欲しいものが
用意できて(いくらでも改造可能)いいですよ~

並び替えする前の列の数が3列あって
「3列目,1列目,2列目」の順に並び替えたい場合

Dim arySort(2)
arySort(0) = 2
arySort(1) = 0
arySort(2) = 1

' 引数(ドラッグアンドドロップしたファイル名)を取得
Set objArgs = WScript.Arguments

If objArgs.Count = 0 Then
strFileName = InputBox("並び替える CSV のファイル名を入力してください。")
Else
strFileName = objArgs(0)
End If

Const ForReading = 1,ForWriting = 2,ForAppending = 8 '定数の指定
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")

Set objFileInput = objFS.OpenTextFile(strFileName, ForReading)
Set objFileOutput = objFS.CreateTextFile(strFileName & ".tmp.csv", True)

Dim aryColsSorted

Do Until objFileInput.AtEndOfStream
strLine = objFileInput.ReadLine
aryCols = Split(strLine, ",")
i = 0
ReDim aryColsSorted(UBound(aryCols))
For Each strCol In aryCols
aryColsSorted(arySort(i)) = strCol
i = i + 1
Next

objFileOutput.Write Join(aryColsSorted, ",") & vbCrLf
Loop

objFileOutput.Close
objFileInput.Close
    • good
    • 0

ANo1 のプログラムですが、


resort.vbs という名前のファイルを作成して、それに
コピペして、あとは、ソートしたいファイルを
ドラック&ドロップすればおっけ~です。

ただ、"" の中にコンマ(,)がある場合は、さらに
考慮しないといけないですが・・・
    • good
    • 0

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