ExcelからRESTでWebにアクセスし、情報を引き出すサンプルを作ってみた
自分用のおぼえがき。
ExcelからRESTを使ってXML形式の情報を引き出し、パースして内容を表示する方法がわかったのでメモ。
ヒト遺伝子アノテーション統合データベース というサイトがあり、RESTで情報を引き出せる らしいので、ここのサンプルを移植する感じで、ExcelからRESTで情報を引き出すプログラムを作ってみた。
以下のコードをExcelシートのクラスモジュールに書き込む。
Sub Main() Const Url = "http://h-invitational.jp/hinv/hws/varysysdb/search/HIT000022181+hit/" Const NodePath = "/varysys_db/rs_number" Dim Xml As String Xml = GetContents(Url) Dim NodeText As Collection Set NodeText = GetNodeText(NodePath, Xml) ShowData NodeText End Sub Function GetContents(Url As String) As String Dim XmlHttp As Object Set XmlHttp = CreateObject("MSXML2.XMLHTTP") XmlHttp.Open "GET", Url, False XmlHttp.Send GetContents = XmlHttp.ResponseText End Function Function GetNodeText(NodePath As String, Xml As String) As Collection Set GetNodeText = New Collection Dim Dom As Object Set Dom = CreateObject("MSXML2.DOMDocument") If Not Dom.LoadXml(Xml) Then Exit Function Dim Nodes As Variant Set Nodes = Dom.DocumentElement.SelectNodes(NodePath) Dim Node As Variant For Each Node In Nodes GetNodeText.Add Node.Text Next End Function Sub ShowData(Data As Collection) Me.UsedRange.Clear Dim i As Integer i = 1 Dim e As Variant For Each e In Data Me.Cells(i, 1).Value = e i = i + 1 Next End Sub
表示内容の意味はわからないけど(笑)、ともかくRESTを使って取得したデーターをパースして中身を取り出すことができた。