- 締切済み
VBA でxmlの全要素・属性の読み込み
お世話になります。 ExcelのVBAを使用して、xmlファイルの全要素・全属性を読み込み、 Excelに書き出したいと思っております。 ネットを参考に下記のソースで、全ての要素をエクセルに 書き出すことは、できたのですが、どうしても全属性を読み込むことが できません。 どのようにすればよいか教えて頂けないでしょうか? お手数ですがよろしくお願い致します。 -----------------ソース---------------- Sub main() Dim myxml As New DOMDocument40 Dim nodelist As IXMLDOMNodeList Dim onenode As IXMLDOMNode Dim i As Integer myxml.Load ("C:\Users\harada\Desktop\problem_info取り込み\problem_info.xml") Set nodelist = myxml.DocumentElement.ChildNodes i = 1 For Each onenode In nodelist Call submain(onenode, i, 1) i = i + 1 Next End Sub Sub submain(tmp As IXMLDOMNode, itmp As Integer, j As Integer) If tmp.HasChildNodes = False Then Exit Sub k = tmp.ChildNodes.Length For m = 0 To k - 1 Cells(itmp, j + m).Value = tmp.ChildNodes(m).Text Next j = j + m Set tmp = tmp.ChildNodes.NextNode Call submain(tmp, itmp, j) End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- DOUGLAS_
- ベストアンサー率74% (397/534)
#直接の回答にはなっていないでしょうから、ご要望から離れておりましたら、スルーなさってください。 >xmlファイルの全要素・全属性を読み込み、 >Excelに書き出したい [XML ファイル] でしたら、お示しのような面倒くさいコードを使わなくても、エクセルの標準機能で行った方が簡単ではありませんか? 「書き出した」後の閲覧もビジブルですし。。。 Sub Macro1() ActiveWorkbook.XmlImport URL:= _ "C:\Users\harada\Desktop\problem_info取り込み\problem_info.xml", _ ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1") End Sub