| 
    
     |  | はじめまして、vba初心者の者です。 既存のxmlファイルをvbaにてExcelへ処理したいのですが、以下にある名前空間の無いxmlの各TimeDefine値をExcelセルへ取得できました。しかし、名前空間のあるxmlではそのままでは取得できませんでした。名前空間の定義の仕方やプロパティ記述方法が分からず困っています。
 
 ・サンプルvba
 Public Sub sample()
 Dim XMLDocument As MSXML2.DOMDocument60
 Dim xmlDate As IXMLDOMNode
 Dim xmlCustomer As IXMLDOMNode
 Dim xmlDataNode As IXMLDOMNode
 
 On Error GoTo ERROR_
 
 Set XMLDocument = New MSXML2.DOMDocument60
 XMLDocument.async = False
 
 Dim dir As String
 dir = ActiveWorkbook.Path
 
 XMLDocument.Load (dir + "\sample.xml")
 
 If (XMLDocument.parseError.ErrorCode <> 0) Then
 MsgBox (XMLDocument.parseError.reason)
 GoTo ERROR_
 End If
 
 Set xmlDataNode = XMLDocument.SelectSingleNode("//Report/Time")
 Dim Node As IXMLDOMNode
 
 Dim nodeko As Integer
 
 nodeko = 1
 
 For Each Node In xmlDataNode.ChildNodes
 
 Cells(nodeko + 1, 1) = Node.ChildNodes(0).Text
 Cells(nodeko + 1, 2) = Node.ChildNodes(1).Text
 Cells(nodeko + 1, 3) = Node.ChildNodes(2).Text
 Cells(nodeko + 1, 4) = Node.ChildNodes(3).Text
 
 nodeko = nodeko + 1
 
 Next
 
 ERROR_:
 
 If Not XMLDocument Is Nothing Then Set XMLDocument = Nothing
 If Not xmlDate Is Nothing Then Set xmlDate = Nothing
 If Not xmlCustomer Is Nothing Then Set xmlCustomer = Nothing
 If Not xmlDataNode Is Nothing Then Set xmlDataNode = Nothing
 
 
 End Sub
 
 
 ・名前空間の無いxml
 <?xml version="1.0" encoding="utf-8"?>
 <Report>
 <Head>
 <Title>天気予報</Title>
 <ReportDateTime>2020-06-21T17:00:00+09:00</ReportDateTime>
 <TargetDateTime>2020-06-21T17:00:00+09:00</TargetDateTime>
 </Head>
 <Time>
 <TimeDefine timeId="1">
 <id>1</id>
 <DateTime>2020-06-21T17:00:00+09:00</DateTime>
 <Duration>PT7H</Duration>
 <Name>今夜</Name>
 </TimeDefine>
 <TimeDefine timeId="1">
 <id>2</id>
 <DateTime>2020-06-21T17:00:00+09:00</DateTime>
 <Duration>PT7H</Duration>
 <Name>今朝</Name>
 </TimeDefine>
 </Time>
 </Report>
 
 
 ・名前空間のあるxml
 <?xml version="1.0" encoding="utf-8"?>
 <Report xmlns="jmaxml1" xmlns:jmx="jmaxml1" xmlns:jmx_add="addition1">
 <Head>
 <Title>天気予報</Title>
 <ReportDateTime>2020-06-21T17:00:00+09:00</ReportDateTime>
 <TargetDateTime>2020-06-21T17:00:00+09:00</TargetDateTime>
 </Head>
 <Time xmlns="meteorology1" xmlns:jmx_eb="elementBasis1">
 <TimeDefine timeId="1">
 <id>1</id>
 <DateTime>2020-06-21T17:00:00+09:00</DateTime>
 <Duration>PT7H</Duration>
 <Name>今夜</Name>
 </TimeDefine>
 <TimeDefine timeId="1">
 <id>2</id>
 <DateTime>2020-06-21T17:00:00+09:00</DateTime>
 <Duration>PT7H</Duration>
 <Name>今朝</Name>
 </TimeDefine>
 </Time>
 </Report>
 
 なお、xmlのフォーマットの変更は自身では許可されません。
 アドバイス頂ければ助かります。宜しくお願いします。
 
 |  |