エクセルVBAでHTMLへの書き出し 余分なダブルクォーテーションが消したい
お世話になります。
現在下記のようなVBAを組んでみて、なんとかエクセルの複数シートを一括でHTMLとして出力できないか試行錯誤しています。
しかし、どうしても各文字列がダブルクォーテーションで囲まれてしまい、かつ、HTML上に本来存在していてもらわないといけないダブルクォーテーションが2重になってしまう(本来一個あればOKなところに余分にもう一個ついてしまう)という状態です。
おそらくマクロの中身が思いっきり違うのだろうと思うのですが、いかんせんよく分かりません。以下に実際の中身とその結果出てきてしまったものを記載しますので、なにとぞ、ご教授をお願いいたします。
■実際に使っているマクロの中身
Sub Test()
Dim ws As Worksheet
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
ws.SaveAs ThisWorkbook.Path & "\" & ws.Name & ".html", xlUnicodeText
Next ws
End Sub
■結果として出力されてしまうHTML(まがいの何か)
"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"" ""http://www.w3.org/TR/html4/loose.dtd"">"
"<html lang=""ja"" dir=""ltr"">"
<head>
"<meta http-equiv=""Content-Type"" content=""text/html; charset=Shift_JIS"">"
"<meta http-equiv=""Content-Style-Type"" content=""text/css"">"
"<meta http-equiv=""Content-Script-Type"" content=""text/javascript"">"
"<link href=""css/style.css"" rel=""stylesheet"" type=""text/css"" media=""screen, tv"">"
"<script type=""text/javascript"" src=""/common/js/search.js""></script>"
■本当はこうしたいHTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen, tv">
<script type="text/javascript" src="/common/js/search.js"></script>
以上となります。
補足
あ、良く考えたらCDATA中のマークアップは無視されるからどっちみち CDATAとオリジナルのCDATA要素はそもそも同時に出現できないや。(汗 質問改定。 <!DOCTYPE hoge SYSTEM "./himajin.dtd"> <hoge> <style> <CDATA> <!-- himajin.dtdではタグとして有効であってほしい --> </CDATA> </style> </hoge> <!DOCTYPE hoge SYSTEM "./himajin2.dtd"> <hoge> <!-- himajin2.dtdのstyleはCDATAなので<a>はタグとして解釈されない --> <style> <a> </style> </hoge> どうやって書き分けたらいいんだろう? #PCDATAは#がついているから問題ないと思うけど。