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

    Wordマクロで文字数を取得する方法をまとめてみました。

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

  2. Office関連

    Office クリップボードをマクロで操作する(UI Automation)

    以前MSAAを利用してOffice クリップボードを操作するマクロを書…

  3. Office関連

    UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法

    マクロでダイアログやボタンの操作を行う時に便利なUI Automati…

  4. Office関連

    Office 365 unified APIをJavaScriptだけで呼び出す

    Microsoftの松崎さんのブログに下記の記事がありました。…

  5. Office関連

    「いちばんやさしいPowerPoint VBAの教本」レビュー

    「インストラクターのネタ帳」で有名な伊藤さんが執筆された書籍第二弾、「…

  6. Office関連

    メールを閉じたときに指定したフォルダに移動するOutlookマクロ

    先日Twitterで @akashi_keirin さんが下記ツイート…

コメント

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP