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関連

    JPEG画像の回転情報を変更するVBAマクロ

    mougに「マクロでJPEG画像のExif(Orientation)を…

  2. Office関連

    [Word VBA]ルビ(ふりがな)ダイアログの操作に挑む(2)

    2016/10/28 追記:改良版のマクロを書きました。…

  3. Office アドイン

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

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

  4. Office アドイン

    [Office用アプリ]Seller Dashboardの不満点

    当ブログでも散々取り上げていますが、ストア登録の申請含めて、Offic…

  5. Office関連

    Outlook REST APIに会議室情報を取得するAPIが追加されました。

    松崎さんのツイートで、Outlook REST APIのベータエンドポ…

  6. Office関連

    Acrobatを使ってPDFファイルを結合するVBAマクロ

    前回の記事では、iTextSharpを使ってPDFファイルを結合するP…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP