フォーラム記事

[Excel]Web関数を使ってインターネット上のデータを取得する方法

テクニカル レベル : 中級

概要
Excel 2013で追加された「ENCODEURL」「WEBSERVICE」「FILTERXML」関数を使ってインターネット上のデータを取得する方法を説明します。
詳細

Excel 2013では「ENCODEURL」「WEBSERVICE」「FILTERXML」という3つのWeb関数が追加されました。

これらの関数を利用することで、インターネット上のデータをExcelに簡単に取り込むことができます。



・関数の説明


関数
説明
書式
引数
ENCODEURL
URL 形式でエンコードされた文字列を返します。
ENCODEURL(文字列)
文字列:URL 形式でエンコードする文字列です。
WEBSERVICE
インターネットかイントラネットの Web サービスからのデータを返します。
WEBSERVICE(URL)
URL:必ず指定します。Web サービスの URL を指定します。
FILTERXML
指定された XPath に基づいて XML コンテンツの特定のデータを返します。
FILTERXML(XML, XPath)

XML:必ず指定します。有効な XML 形式の文字列を指定します。


XPath:必ず指定します。標準 XPath 形式の文字列を指定します。



ENCODEURL」「WEBSERVICE」「FILTERXML」より



・関数の使い方


関数の使い方は、大まかには下記のようになります。


  1. 日本語を含む検索語など、Webサービスに渡したい文字列をENCODEURL関数を使ってURLエンコードします。
  2. 1.でエンコードした文字列を含めたURLを、WEBSERVICE関数を使ってWebサービスに渡します。
  3. 2.のWEBSERVICE関数で返ってきたXMLデータから、FILTERXML関数を使って必要な値だけ取得します。値はXPathで指定する必要があります。



・使用例


Bingの検索結果はRSS(XML)形式で取得することができるので、Web関数を使ってBingの検索結果を取得する例を紹介します。


使用するセルは下記の通りです。


  • C2 : 検索するキーワード
  • C3 : ENCODEURL関数でURLエンコードしたキーワード
  • C4 : WEBSERVICE関数で取得したデータ
  • C5 : FILTERXML関数で抽出した値


1. セルC2にBingで検索したいキーワードを入力します。




2. セルC3に[=ENCODEURL($C$2)]と入力します。




3. セルC4に[=WEBSERVICE("http://www.bing.com/search?format=RSS&q=" & $C$3)]と入力します。




4. セルC5に[=FILTERXML($C$4,"/rss/channel/item[1]/title")]と入力します。ここで指定しているXPathは、複数ある「/rss/channel/item」要素の中から1番目の要素の子要素である「title」の値を取得する、という意味を表しています。「/rss/channel/item[2]/title」とすれば、2番目の要素の値を取得することができます。




5. 上記式は、[=FILTERXML(WEBSERVICE("http://www.bing.com/search?format=RSS&q=" & ENCODEURL($C$2)),"/rss/channel/item[1]/title")]のように1つにまとめることもできます。






以上のように、Excel 2013で追加されたWeb関数を活用すれば、プログラムを組むことなく標準の関数だけでインターネット上のデータを取得することができます。

・関連Webページ




 
フォーラム記事情報

表示回数: 6,167 最終更新日: 2018年6月24日 適用先: