「Shift-JIS(=「ANSI」)」、「UTF-8(BOM付き)」と「UTF-16LE(BOM付き)」(=「Windows」で言うところの「Unicode」)のみですが、それ以外にも、対応可能みたいです。
今は、プログラムファイルの存在するフォルダ内の「Test.txt」ファイルを読み込み、そのまま、「Result.txt」ファイルに書き込んでいます。
Option Explicit
Dim ai, ao, f, m, so, x
m = "Shift-JIS" '"UTF-8" "Unicode"
Set so = CreateObject("Scripting.FileSystemObject")
f = so.GetParentFolderName(WScript.ScriptFullName)
Set ai = CreateObject("ADODB.Stream")
ai.Type = 2
ai.Charset = m
ai.Open
ai.LoadFromFile f & "\Test.txt"
Set ao = CreateObject("ADODB.Stream")
ao.Type = 2
ao.Charset = m
ao.Open
Do Until ai.EOS
x = ai.ReadText(-2)
ao.WriteText x, 1
Loop
ao.SaveToFile f & "\Result.txt", 2
ai.Close
ao.Close
Set ai = Nothing
Set ao = Nothing
Set so = Nothing
MsgBox("Finshed!")
簡単な説明です。
m = "Shift-JIS" '"UTF-8" "Unicode"
読み書きするファイルの「文字コード」を指定しています。
Set so = CreateObject("Scripting.FileSystemObject")
f = so.GetParentFolderName(WScript.ScriptFullName)
「Windows」のファイルやフォルダを扱う機能を読み込み、プログラムファイルの存在するフォルダを調べています。
Set ai = CreateObject("ADODB.Stream")
ai.Type = 2
ai.Charset = m
ai.Open
ai.LoadFromFile f & "\Test.txt"
「Test.txt」ファイルを読み込むための準備をしています。
Set ao = CreateObject("ADODB.Stream")
ao.Type = 2
ao.Charset = m
ao.Open
書き出しようファイルを用意しています。
Do Until ai.EOS
x = ai.ReadText(-2)
ao.WriteText x, 1
Loop
ファイルを1行ずつ読み込み、そのまま1行ずつ書き出しています。
ao.SaveToFile f & "\Result.txt", 2
「Result.txt」という名前で保存しています。
ai.Close
ao.Close
Set ai = Nothing
Set ao = Nothing
Set so = Nothing
MsgBox("Finshed!")
あとは、終了処理で、最後に「Finished!」と表示しています。