検索プログラマのメモ帳

壁にぶつかったら検索で調べるプログラマのちょっと遅れたメモ帳。たまに自分で挑戦する。

Skip to: Content | Sidebar | Footer

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

14 4月, 2011 (14:47) | VBA・エクセル | By: admin

エクセルのシートをそのまま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")

Write a comment