エクセルのシートをそのまま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 ObjectDim SecondObj As ObjectDim Text As StringSet FirstObj = CreateObject("ADODB.Stream")With FirstObj.Type = 2.Charset = "shift-jis".Open.LoadFromFile Filename.Position = 0End WithText = 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".OpenEnd WithSecondObj.writeText TextSecondObj.saveToFile Filename, 2End Sub
処理
'/ HTMLファイル 保存
ActiveWorkbook.SaveAs Filename:=Filename & ".html", FileFormat:=xlHtml
'/ shift-jisをEUCに変換
sjis_to_euc (Filename & ".html")