Office関連

[Excel 2013]Web関数を使ってマッシュアップ

以前書いた記事「Excel 2013で追加された「WEBSERVICE」関数を使って、マクロを使わずWeb APIを利用する。」でExcel 2013で追加されたWeb関数を紹介しましたが、今回はそのWeb関数を使って複数のWeb APIを組み合わせて便利な機能を作り出す、所謂マッシュアップをしてみようと思います。

具体的には、Twitter APIMextractr ネガポジAPIを組み合わせて、

“指定したTwitterユーザーのツイートがポジティブなのかネガティブなのかをExcelで判定する”

といったことをやってみたいと思います。


まずはTwitter APIを利用してツイートを取得する方法ですが、「Twitter API 仕様書」によると、

http://api.twitter.com/1/statuses/user_timeline/(ユーザーID).xml

で指定したユーザーのツイートを取得できるようです。
私(@kinuasa)のツイートを取得する場合は下記のような感じですね。

http://api.twitter.com/1/statuses/user_timeline/kinuasa.xml

このリクエストURLから得られる結果(XML)をWEBSERVICE関数で取得するには

とすれば良いのですが、結果の文字数が多すぎるとエラーになってしまうのでcountオプションを付けて取得する件数を指定することにします。

ユーザーIDは自由に入力できるようにしたいので、セル(B2)で指定します。

このXMLから目的の値を取得するにはFILTERXML関数を使って、XPath形式で指定します。

※ セルB4のXMLから目的の値(最初のツイート)を取得

WEBSERVICE関数とFILTERXML関数をまとめると下記のようになります。

これでTwitter APIを利用してツイートを取得できることが確認できました。
次はネガポジAPIの確認です。
このAPIを利用するにはAPIキーが必須になるので、利用登録フォームからメールアドレスを登録してAPIキーを取得します。
(※ メールアドレスを登録するとすぐに下記のようなメールが送られてきます。)

Mextractr APIキー発行お知らせメール

ご登録手続きありがとうございます。
次のAPIキーをご利用ください。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

なお、JSONP版ご利用時のURL登録の追加または変更をしたい場合は、
下記お問い合わせ先までご希望をお寄せください。

APIの使い方はMextractr ネガポジAPIにある通りで、

http://ap.mextractr.net/ma8/negaposi_analyzer?out=atom&apikey=xxxxx&text=(URLエンコードした文字列)

のようにapikeyパラメータにAPIキーを、textパラメータにURLエンコードした文字列を渡すだけです。
この結果をTwitter APIのようにWEBSERVICE関数を使って取得する場合は下記のようになります。

※ B2:APIキー , B3:対象文字列

FILTERXML関数でネガポジ度のみを取得する式は下記のようになります。

これで2つのAPIの動作確認ができたので、後は組み合わせるだけです。

セルB4:Twitter ユーザーID
セルC4:Mextractr APIキー
セルC7:

セルD7:

※ ファイルはコチラからダウンロードできます。

以上のように、Excel 2013ではWeb関数を利用することでマクロを使わずに簡単にマッシュアップすることができます。
ただし、WEBSERVICE関数の動作は非常に遅いため、Web APIを組み合わせれば組み合わせるほど結果を取得するまでに時間が掛かるようになりますので、その点だけは注意が必要です。

※ 計算方法が自動になっていると再計算処理にもかなりの時間が掛かるため、個人的には自動計算を切って必要な時だけ手動で計算することをお薦めします。

■ 関連Webページ

・Excel 2013で追加された「WEBSERVICE」関数を使って、マクロを使わずWeb APIを利用する。
//www.ka-net.org/blog/?p=1933
・[Excel 2013]Web関数を使ってXMLデータから複数のレコードをまとめて抽出する。
//www.ka-net.org/blog/?p=3266

[Office用アプリ]ドキュメントをバイト配列として取得後Base64エンコードする前のページ

ドラッグ&ドロップしたファイルをSkyDrive上のフォルダーにアップするVBScript次のページ

関連記事

  1. Office関連

    [Excel Services ECMAScript]jPrintAreaで埋め込んだブック部分のみ…

    jQuery + jPrintAreaを利用して、埋め込んだExcel…

  2. Office関連

    蛍光ペンでマークした部分の文字数をカウントするWordマクロ

    Twitterでたまたま下記のツイートを見つけたので、簡単な処理を考え…

  3. Office アドイン

    [Office用アプリ]Bing Maps for Accessの紹介

    Microsoft Download CenterでAccess向けO…

  4. Office関連

    代理人アクセスによって予定を追加するOutlookマクロ

    先日久々にmougの質問に回答しました。マクロを使って、Exc…

  5. Office関連

    古い形式のWordテンプレートを新しい形式に一括変換するVBScript

    古い形式のWordテンプレート(dot)を新しい形式(dotx,dot…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP