VBAでBOM無しUTF-8テキストを出力する

javadocのpackage-info.javaをマクロでまとめて出力しようとしたのだが、OPEN - CLOSE ではShift-JIS、FileSystemObjectではUTF-16かASCIIでしか出力できない模様。
この記述を参考にコードを作成。

    '## ファイル出力 - 開始 ##
    Dim bytData() As Byte
    
    With CreateObject("ADODB.Stream")
        .Open
        ' UTF-8に変換
'        .Type = adTypeText
        .Type = 2
        .Charset = "UTF-8"
        .WriteText "/**", 1                     '改行する
        .WriteText " * XXX, 1                   '
        .WriteText " * <pre>", 1                '
        .WriteText " * YYY", 1                  '
        .WriteText " * </pre>", 1               '
        .WriteText " */", 1                     '
        .WriteText "package jp.co.hoge;", 1     '
      
        ' 先頭のBOM取り
        .Position = 0
'        .Type = adTypeBinary
        .Type = 1
        .Position = 3
        bytData = .Read
        .Close
    
        ' UTF-8Nコードのデータを保存
        .Open
'        .Type = adTypeBinary
        .Type = 1
        .Write bytData
'        .SaveToFile "C:\package-info.java", adSaveCreateOverWrite
        .SaveToFile "C:\package-info.java", 2
        .Close
    End With
    '## ファイル出力 - 終了 ##
  1. テキストモードでストリームに書込
  2. バイナリモードで先頭のBOMを飛ばして読込
  3. 保存

みたいな感じか。なるほど。