Office関連

Excel 2013で追加された「WEBSERVICE」関数を使って、マクロを使わずWeb APIを利用する。

Microsoft Office 2013が登場し、Excelにも新しい関数がいくつか追加されました。
その中でも私が特に注目したいのが「Web」関連の関数です。

WEBSERVICE」「ENCODEURL」「FILTERXML」の3つの関数が追加され、これらの関数を使うと、Webサービス、つまり公開されているWeb APIをVBAでコードを書くことなく利用できるようになります。

まずは関数の説明から。

・ENCODEURL(文字列):URL にエンコードされた文字列を返します。
・FILTERXML(xml,xpath):指定された XPath に従って、XML コンテンツの特定データを返します。
・WEBSERVICE(url):Web サービスからデータを返します。

使い方としては、ENCODEURL関数でエンコードしたクエリ文字列を、WEBSERVICE関数で指定したURLに渡し、結果として得られるXMLからFILTERXML関数を使って任意の値を取得する(値はXPath式で指定)、という流れになります。

例えば、SimpleAPI「WikipediaAPI」を利用してWikipediaの記事内容を取得する場合は下記のようになります。

セルA1:キーワードを入力
セルA2:

セルA2の式では上記の説明通り、APIのリクエスト先URL[http://wikipedia.simpleapi.net/api?output=xml&keyword=]に対して、ENCODEURL関数でエンコードしたクエリ文字列をWEBSERVICE関数で渡し、結果として得られるXMLから、目的となるデータ(body要素の値)をFILTERXML関数を使って抽出しています。

これまでのExcelではWeb APIを利用するのにコーディングを必要としていましたが、今バージョンからはコードを書くことなくAPIを利用することができます(もちろん、より柔軟にAPIを利用したい場合は自分でコードを書く必要がありますが…)。

“Webの世界では広く利用されている、便利なWeb APIをExcelからコーディング不要で簡単に利用できる”

とても便利だと思いませんか?
ちなみに、郵便番号検索APIを利用すれば、下記のように郵便番号から住所を取得することもできます。

2012/07/27 追記:WEBSERVICE関数は下記のような注意事項もあるので記載しておきます。
2013/01/10 追記:注意事項を一部変更しました。

・引数がデータを返せない場合、エラー値 #VALUE! が返されます。
・引数が無効な文字列と判明した場合、または引数がセルの許容範囲である 32767 文字を超える文字列になった場合、エラー値 #VALUE! が返されます。
・URL の文字列が GET 要求の許容範囲である 2048 文字を超える場合、エラー値 #VALUE! が返されます。
・ftp:// または file:// などのサポートされていないプロトコルの場合、エラー値 #VALUE! が返されます。

WEBSERVICE 関数より

■ 関連Webページ

・[Excel 2013]Web関数を使ってマッシュアップ
//www.ka-net.org/blog/?p=2462
・[Excel 2013]Web関数を使ってXMLデータから複数のレコードをまとめて抽出する。
//www.ka-net.org/blog/?p=3266

関連記事

  1. Office関連

    Microsoft MVP for Outlook を初受賞しました。

    2010年7月から「Office System」分野でMicrosof…

  2. Office関連

    Office 2013 アイコン一覧(D)

    ・Office 2013 アイコン一覧 NUM…

  3. Office アドイン

    [Office用アプリ]メールアプリの配置方法

    OutlookやOutlook Web App上で動作するメールアプリ…

  4. Office関連

    Acrobat XIを操作してテキスト認識操作を行うVBAマクロ

    マクロからAcrobatを操作する場合「PDFファイル上のフィールドの…

  5. Office関連

    [VBA]DataObjectを使ったクリップボード操作が上手くいかない場合の対処法

    VBAマクロからクリップボードを操作する場合、定番となっているのがDa…

コメント

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

アーカイブ

おすすめ記事

RapidSSL_SEAL-90x50
  1. Office アドイン

    [Office用アプリ]RSS表示アプリを作成する。
  2. Google関連

    [Google Apps Script]選択文字列を翻訳する
  3. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(3)
  4. プリキュア

    【魔法つかいプリキュア】まほうのパーティーカードゲットしてきました。
  5. Office関連

    格子状にガイドを追加するPowerPointマクロ
PAGE TOP