シートをsjisでhtmlで作成し、eucに変換する

エクセルのシートをそのままhtmlに変換して保存することができます。しかし、それは文字コードがshift-jisとなってしまいます。

サーバーの環境によってはutf-8やeucとなることも多いので、手作業で変換する必要があります。しかし、それは手間になるので、ADODB.Streamを利用して自動で変換してくれるような処理を入れたいです。

変換用の関数

ストリームを2つ作って、1つ目に"shift-jis"で読み込んで、2つめに"euc-jp"にして入れる

'"shift-jis"から"EUC-JP"
Public Sub sjis_to_euc(Filename As String)
    
    Dim FirstObj As Object
    Dim SecondObj As Object
    Dim Text As String
    Set FirstObj = CreateObject("ADODB.Stream")
    
    With FirstObj
        .Type = 2
        .Charset = "shift-jis"
        .Open
        .LoadFromFile Filename
        .Position = 0
    End With
    
    Text = FirstObj.readText(-1)
    
    'ヘッダーの"shift-jis"から"EUC-JP"
    Text = Replace(Text, "shift_jis", "EUC-JP")
 
    Set SecondObj = CreateObject("ADODB.Stream")
 
    With SecondObj
        .Type = 2
        .Charset = "euc-jp"
        .Open
    End With
    
    SecondObj.writeText Text
    
    SecondObj.saveToFile Filename, 2
 
End Sub
 

処理

 

'/ HTMLファイル 保存
        ActiveWorkbook.SaveAs Filename:=Filename & ".html", FileFormat:=xlHtml
        '/ shift-jisをEUCに変換
        sjis_to_euc (Filename & ".html")

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です