http://www.openreference.org/articles/view/651
上記サイトのコードがすごく役に立ちました。ありがとうございます。
今、自分のExcelのバージョンでは、”DOMDocument60”が最新
MSXML2.DOMDocument だとエラーがでたので修正しました。
それから、エラー処理を好み(FINALLY句バージョン)にさせてもらいました。
これをベースに勉強させてもらいます!
Public Sub sample() Dim strArray() As Variant 'Micro Dim XMLDocument As MSXML2.DOMDocument60 Dim xmlRoot As IXMLDOMNode Dim xmlData As IXMLDOMNode Dim xmlChildData As IXMLDOMNode Dim xmlAttr As MSXML2.IXMLDOMAttribute '出力するデータを設定 strArray = Array(Array("てすと太郎", "東京都港区XX-XX-XX", "111-1111-1111"), _ Array("てすと次郎", "埼玉県さいたま市XX-XX-XX", "222-2222-2222"), _ Array("てすと三郎", "神奈川県横浜市XX-XX-XX", "333-3333-3333")) On Error GoTo ERROR_ 'MSXMLオブジェクトを生成 Set XMLDocument = New MSXML2.DOMDocument60 'XML宣言を生成 Call XMLDocument.appendChild(XMLDocument.createProcessingInstruction("xml", "version=""1.0"" encoding=""Shift_JIS""")) '要素を生成 Set xmlRoot = XMLDocument.appendChild(XMLDocument.createElement("ROOT")) '配列データの数だけ要素を要素に追加 Dim intId As Integer For intId = 0 To UBound(strArray) '要素を生成 Set xmlData = XMLDocument.createElement("DATA") '要素を生成 Set xmlAttr = XMLDocument.createAttribute("id") 'id属性を生成 xmlAttr.NodeValue = intId + 1 'id属性の値を設定 Call xmlData.Attributes.setNamedItem(xmlAttr) '要素にid属性を設定 '要素の子要素を生成して要素に追加 Set xmlChildData = xmlData.appendChild(XMLDocument.createElement("Name")) xmlChildData.Text = strArray(intId)(0) Set xmlChildData = xmlData.appendChild(XMLDocument.createElement("Address")) xmlChildData.Text = strArray(intId)(1) Set xmlChildData = xmlData.appendChild(XMLDocument.createElement("Tel")) xmlChildData.Text = strArray(intId)(2) '要素を要素に追加 Call xmlRoot.appendChild(xmlData) Next intId 'XMLドキュメントを出力 XMLDocument.Save ("C:\Users\Public\Desktop\sample.html") FINALLY: '各オブジェクトの開放 If Not XMLDocument Is Nothing Then Set XMLDocument = Nothing If Not xmlRoot Is Nothing Then Set xmlRoot = Nothing If Not xmlData Is Nothing Then Set xmlData = Nothing If Not xmlChildData Is Nothing Then Set xmlChildData = Nothing If Not xmlAttr Is Nothing Then Set xmlAttr = Nothing Exit Sub ERROR_: MsgBox Err.Description GoTo FINALLY End Sub
コメント