- ベストアンサー
VBAからxml・スタイルシートを作成すると、一度保存しないと正常に動作しない
お世話になります。 現在エクセルのVBAで(1)のようなソースで(2)を書き出しています。 (2)の「<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 」もVBAで「indate=<?xml version="1.0" encoding="UTF-8"?xsl:stylesheet version="1.0" lns:xsl="http://www.w3.org/1999/XSL/Transform">」とそのまま打ち込んでいます。 スタイルシートを使用して返還しようとすると、「パラメータが違う」旨メッセージがでてきて、(2)を一度開き、何も変更しないで保存すると正常にスタイルシートの変換処理が行われます。 (2)のVBAで書き出したxmlがUTF-8で保存されていないように感じるのですが、どのように変更すればUTF-8で書き出せるのでしょうか? 以上お手数ですが、よろしくお願いします。 (1) Const ForReading = 1, ForWriting = 2, ForAppending = 3 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 Dim fs, f, ts Set fs = CreateObject("Scripting.FileSystemObject") fs.CreateTextFile "F:\EXCEL→XML\問題形式" & Worksheets("設問形式設定シート").Range(設問形式設定シート大問列 & 設問形式設定シート行).Value & ".xsl" 'ファイルの作成 Set f = fs.GetFile("F:\EXCEL→XML\問題形式" & Worksheets("設問形式設定シート").Range(設問形式設定シート大問列 & 設問形式設定シート行).Value & ".xsl") Set ts = f.OpenAsTextStream(ForWriting, TristateTrue) ts.Write indate ts.Close (2) <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="設定.xsl" /> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:param name="形式番号" >10001</xsl:param> <xsl:template match="/"> <xsl:call-template name="問題形式" /> </xsl:template> xsl:stylesheet>
- みんなの回答 (3)
- 専門家の回答
補足
ご返事ありがとうございます。 教えていただいた方法を試したのですが、状況がかわらず、やはり、保存しなおさないと正しく認識しない状態です。