• 締切済み

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

みんなの回答

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

#直接の回答にはなっていないでしょうから、ご要望から離れておりましたら、スルーなさってください。 >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

関連するQ&A