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

Office 2013 Consumer Preview(カスタマー プレビュー)をインストールしてみました。前のページ

Excel 2013版URLエンコードマクロ次のページ

関連記事

  1. Office関連

    VBAプロジェクトを「展開する」VBAマクロ

    MSDNフォーラムに面白い質問がありました。VBE・プロジェクト …

  2. Office関連

    マクロで実行したいコマンドのIDを調べる簡単な方法

    MSDN フォーラムに下記質問がありました。・Excel-VB…

  3. Office アドイン

    Office用アプリ(apps for Office)の概要と開発方法

    当ブログでもカテゴリー:JavaScript API for Offi…

  4. Excel

    指定したAccessファイルで「データベースの最適化/修復」を実行するVBAマクロ

    大分前の記事になりますが、開いているデータベースを最適化するマクロのコ…

  5. Office アドイン

    [Office用アプリ]アプリを削除する。

    「JavaScriptで作成した作業ウィンドウアプリを検証してみる。」…

  6. Office関連

    「あのコマンドどこだっけ? for Office 2013」の紹介

    Word MVPの新田さんのブログでも紹介していただいている自作フリー…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP