• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでxmlから特定の文字を変数に入れたい)

VBAでxmlから特定の文字を変数に入れたい

このQ&Aのポイント
  • VBAからXMLを取得する方法を検索し、取得したXMLの特定の部分を変数に格納する方法を知りたいです。
  • 上記のVBAコードでは、取得したXMLを一行ずつ表示するだけであり、<description>タグで囲まれた部分を変数に格納する方法がわかりません。
  • 解説を検索しましたが、理解できず困っています。VBAでXMLの特定の部分を変数に格納する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • shino719
  • ベストアンサー率50% (11/22)
回答No.1

スレ主さんのコードを元にちょこっと書き直してみました。 変数名、オブジェクト名等は適当ですが、動作確認はして <description>の値が取れることは確認しました。 dumpDomDoc関数は不要だったので消しました。 ■サンプル1 Sub httpRequest() Dim HttpReq As MSXML2.XMLHTTP Dim DomDoc As MSXML2.DOMDocument Dim targetURL As String Dim xmlNodeList As IXMLDOMNodeList    ←追加 Dim value As String             ←追加 targetURI = "http://www.drk7.jp/weather/xml/14.xml" 'HTTP GET Set HttpReq = CreateObject("MSXML2.XMLHTTP") HttpReq.Open "GET", targetURI, False HttpReq.send (Null) 'XML PARSE Set DomDoc = CreateObject("MSXML2.DOMDocument") DomDoc.LoadXML (HttpReq.responseText) Set xmlNodeList = DomDoc.selectNodes("weatherforecast/description")    ←追加 value = xmlNodeList(0).Text    ←追加 Set HttpReq = Nothing Set DomDoc = Nothing End Sub またweatherforecastとdescriptionの指定を分けたい場合は、 ■サンプル2 Sub httpRequest() Dim HttpReq As MSXML2.XMLHTTP Dim DomDoc As MSXML2.DOMDocument Dim targetURL As String Dim xmlNodeList1 As IXMLDOMNodeList    ←追加 Dim xmlNodeList2 As IXMLDOMNodeList    ←追加 Dim value As String             ←追加 targetURI = "http://www.drk7.jp/weather/xml/14.xml" 'HTTP GET Set HttpReq = CreateObject("MSXML2.XMLHTTP") HttpReq.Open "GET", targetURI, False HttpReq.send (Null) 'XML PARSE Set DomDoc = CreateObject("MSXML2.DOMDocument") DomDoc.LoadXML (HttpReq.responseText) Set xmlNodeList1 = DomDoc.selectNodes("weatherforecast")      ←追加 Set xmlNodeList2 = xmlNodeList1(0).selectNodes("description")    ←追加 value = xmlNodeList2(0).Text    ←追加 Set HttpReq = Nothing Set DomDoc = Nothing End Sub

master817199
質問者

お礼

丁寧な回答に心から感謝します。 家に帰ったら是非実行させていただきます。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう