VBでWordファイルをutf-8のテキストで保存する
ハマったのでメモ。
タイトルの通り、VBでWordファイルを開き、utf-8のテキストで保存する方法です。
Dim wdApp
Dim wdDoc
wdApp = CreateObject("Word.Application")
wdDoc = wdApp.Documents.Open(Filename:="C:\Test\test3.docx", ReadOnly:=True)
'テキストファイルとして保存
wdDoc.SaveAs(FileName:="C:\Test\test3.txt", Encoding:=65001, FileFormat:=7)
wdDoc.Close()
wdDoc = Nothing
wdApp.Quit()
wdApp = Nothing
ポイントはSaveAsのところ。EncodingはmsoEncodingUTF8といくつのサイトにありましたが、これはVB上では認識されません(☓Encoding:=msoEncodingUTF8)。数字で指定すればOKでした。なお、65001はUTF-8にあたるものです。
http://dobon.net/vb/dotnet/file/readfile.html
FileFormatも同様に数字で。wdFormatUnicodeTextは7を指定します。
http://office.microsoft.com/en-us/word-help/HV080607264.aspxにFileFormatの情報があります。