
VBAからXMLを取得したくて方法を検索し、以下のコードで何とか取得ができました。
Sub httpRequest()
Dim HttpReq As MSXML2.XMLHTTP
Dim DomDoc As MSXML2.DOMDocument
Dim targetURL 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)
dumpDomDoc DomDoc.ChildNodes
Set HttpReq = Nothing
Set DomDoc = Nothing
End Sub
Sub dumpDomDoc(objNode)
Dim obj
For Each obj In objNode
MsgBox obj.ParentNode.nodeName & " : " & obj.NodeValue
If obj.HasChildNodes Then
dumpDomDoc obj.ChildNodes
End If
Next
End Sub
このコードですと、読み込んだXMLを一行づつメッセージボックスに延々と表示するだけなのですが、
例えば行先のXMLファイルにある<description>と</description>に囲まれた部分だけを変数に格納するにはどのように記述すればよろしいのでしょうか?
ググってはみましたが知識不足の為、解説も理解できず困っております。
大変お手数ですがご教示いただけますようお願いします。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access2021 VBA メソッドまたは...
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
VB.Netのテキストボックスのコ...
-
オートフィルタで抽出結果に 罫...
-
Exel VBA 別ブックから該当デ...
-
【VB6】実行ファイルとした後、...
-
エクセルに見えない文字(JISX0...
-
エクセルVBA ユーザーフォーム...
-
CString のGetAt で正しく文字...
-
メールの送信について
-
Excelシート上で右クリックがで...
-
MessageBoxで表示される文字列...
-
VSコードでバックスペースキー...
-
ActiveReportの改ページ不具合...
-
JIPS-Eコードのコード表について
-
【VB】タスクマネージャでEXECE...
-
VBA 現在のセル番地を記憶、復...
-
ExcelVBAの転記について
-
クラウドソージング等の受託系...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
access2021 VBA メソッドまたは...
-
Excel VBA素人です。VBAで図形...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
エクセルに見えない文字(JISX0...
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
オートフィルタで抽出結果に 罫...
-
PreviewKeyDownイベントが2回...
-
JavaScriptの定数名が取り消し...
-
Excel VBAでOpenTextのFieldInf...
-
COBOLの文法
-
ACCESSユニオンクエリでORDER B...
-
Access DCountでの連番について
-
VBA リストボックス(複数条件...
-
C# コードビハインドについて
おすすめ情報