天からのお告げで、CSVをWebシステムにアップロードする前にSJISをUTF-8に変換してほしいという声が聞こえたので書いてみました。
1.文字コード変換といえば、「ADODB.Stream」
文字コード変換する時にCopyToでStreamを繋げる必要があって、入力と出力のファイルが一緒だとエラーになったので、入と出が一緒だったらGetTempNameで取得した仮ファイル名でファイル作ってから置き換えるって処理を付けてます。
入力ファイルが存在しなかったらエラーがでます。
いつもの如く、以下のスクリプトをスクリプト実行ステージに張り付ければ実装できます。
inFile = !元ファイル!
ConvType = !変換処理|SJIS⇒UTF-8,UTF-8⇒SJIS!
outFile = !変換後ファイル!
BefCode = ""
AftCode = ""
Set objFS = CreateObject("Scripting.FileSystemObject")
If Not objFS.FileExists(inFile) Then
Err.Raise 1, "", "元ファイルが存在しません。"
WScript.Quit
End If
If inFile = outFile Then
ReplaceFlg = True
outFile = objFS.GetTempName
Else
ReplaceFlg = False
End If
Select Case ConvType
Case "SJIS⇒UTF-8"
BefCode = "Shift_JIS"
AftCode = "UTF-8"
Case "UTF-8⇒SJIS"
BefCode = "UTF-8"
AftCode = "Shift_JIS"
End Select
Set objBef = CreateObject("ADODB.Stream")
Set objAft = CreateObject("ADODB.Stream")
objBef.Type = 2
objBef.Charset = BefCode
objBef.Open
objBef.LoadFromFile inFile
objAft.Type = 2
objAft.Charset = AftCode
objAft.Open
objBef.CopyTo objAft
objAft.SaveTofile outFile
objBef.Close
objAft.Close
If ReplaceFlg Then
objFS.DeleteFile inFile
objFS.CopyFile outFile, inFile
End If
Set objFS = Nothing
2.設定タブは、こんな感じ。

変換処理は、「SJIS⇒UTF-8」と「UTF-8⇒SJIS」から選べます。