UTF-8からShift_JISに変換する

[vb]
Sub UTF8toSJIS(ByVal InFile As String, ByVal OutFile As String)
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
Dim myST1 As Object, myST2 As Object
Set myST1 = CreateObject("ADODB.Stream")
Set myST2 = CreateObject("ADODB.Stream")
myST1.Type = adTypeText
myST1.Charset = "UTF-8"
myST1.Open
myST1.LoadFromFile InFile
myST1.Position = 0
myST2.Type = adTypeText
myST2.Charset = "Shift_JIS"
myST2.Open
myST1.CopyTo myST2
myST2.SaveToFile OutFile, adSaveCreateOverWrite
myST2.Close
myST1.Close
Set myST1 = Nothing
Set myST2 = Nothing
End Sub
[/vb]

 
UTF-8で保存されているテキストファイルの文字コードをADODBを使ってShift_JISに変換するには、上記のような処理を書けばよい。
 
このプロシージャを、InFileに読み込むファイルのフルパス、OutFileに書き出すファイルのフルパスを与えて呼び出してやれば、文字コードが変換された状態の新しいファイルが作成される。
 
Excel VBAで使える形で書いているが、他のVBAでもこのままで動くはずだ。
また、型宣言を省いてやるだけでVBScriptでも使用可能となる。

 

みっちょ

SALON Doluce 代表。ハッカーでカウンセラー、占い師でカメラマン、その他あらゆる顔を持つ変な人。キッズプログラミング講師、パソコン修理、カウンセリングなど喜んで承ります。お気軽にお声掛けください!