VBAでxmlを扱ってみた

2012年5月30日水曜日

tips vba

t f B! P L
※2013.03.28追記 TwitterAPIがversion1.1になったことで、以下のソースはそのまま使えません。

いろいろな場所で使われているxmlを、VBAで使ってみました
とりあえず、TwitterのAPIで、特定記事を持ってくるやつからデータを取ってみました。


Sub GetUserId()
   Const URL_H As String = "http://api.twitter.com/1/statuses/show/"
   Const URL_ID As String = "Twitterの記事ID"
   Const URL_F As String = ".xml"

   Dim i As Long
   Dim xDoc As Object, nodeList As Object, obj As Variant

   Set xDoc = CreateObject("MSXML2.DOMDocument")
   xDoc.async = False

   If xDoc.Load(URL_H &  URL_ID   & URL_F) Then
       Set nodeList = xDoc.DocumentElement.SelectNodes("/status/user/id")
       For Each obj In nodeList
           Debug.Print obj.Text
       Next obj
   End If

   Set xDoc = Nothing
End Sub
ポイントは、ファイルを飲み込む場合(HTTPリクエスト含む)、Loadを用いて、文字列を読み込む場合は、LoadXMLを用いる、ということでしょうか。

あとは、構造がわかっていて、欲しいデータも決まっているのであれば
DocumentElement.SelectNodes("欲しいノードへのパス")
で取れるみたいです。
とりあえず、メモ書き程度にアップ。

QooQ