Memo plus Alpha

メモにプラスアルファを加えて価値ある情報に。

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の情報があります。