はじめに
今回は、インターネット上の百科事典「Wikipedia」をExcelから利用してみます。ブラウザの画面では情報が多すぎますが、APIを使うことにより、要約されたテキストとして取得できるので、用語一覧などを作る際にも便利です。動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。
Excel VBAでWebサービス - 天気予報を取得してみよう
Excel VBAでWebサービス - MSNマネーから株価の推移を取得しよう
Excel VBAでWebサービス - Excelで書籍情報を検索・取得してみよう
Excel VBAでWebサービス - YouTube APIで動画を検索しよう
Excel VBAでWebサービス - ExcelでTwitterと連携する
Excel VBAでWebサービス - ExcelでTwitterと連携する2
Excel VBAでWebサービス - ExcelでTwitterと連携する 完成編
Excel VBAでWebサービス - Amazonで書籍情報を検索してみよう
Excel VBAでWebサービス - Amazonで様々な商品情報を検索しよう
Wikipediaの引き方
Wikipedia本家のデータ書き出し機能は、形式が独特で扱いづらいなどの難点があります。これをシンプルなデータ形式で提供してくれるのがユーザーローカルが提供しているSimpleAPIです。SimpleAPIで提供されているAPIを使って、Wikipediaを引くことができます。
SimpleAPIについて
検索は、次のURLにGETまたはPOSTでリクエストを送信することにより可能です。
http://wikipedia.simpleapi.net/api
1分間のリクエストは、30件を超えないように注意してください。主な引数は以下の通りです。
表1.主なリクエスト引数
パラメータ名 | 意味と設定値 |
---|---|
keyword | キーワード(現在、前方一致のみ) |
output | 出力形式(xml,rss,jsonなど)。既定値はxml |
レスポンスの主な引数は以下の通りです。
表2.主なレスポンス引数
パラメータ名 | 意味と設定値 |
---|---|
title | キーワードのタイトル |
body | 本文のダイジェスト |
url | Wikipediaへのリンク |
datetime | 更新日時 |
JSON形式について
JSON(JavaScript Object Notation)とは、JavaScript言語向けのデータオブジェクト記法です。第4回の動画検索で紹介したXMLと同様、階層的なデータを表現することができます。 百聞は一見にしかず、XMLと比較してみましょう。
JSONではこのように、データ全体を{}で囲み、1つの要素は、"キー":"値"で表記します。構造体は、{要素1,要素2,・・・}、配列は、[要素1,要素2,・・・]で表記します。JSONの解析には、JScriptの力を借りる必要がありますが、FacebookなどXMLに対応していないAPIもありますので、この機会にJSONの扱いを習得しておきましょう。
Excelによる開発
Excelによる開発は、以下の手順で行います。
- 各種の準備を行う
- HTTP通信を行うVBAを記述する
- JSONデータをセルに転記するVBAを記述する
各種の準備を行う
検索キーワード入力と、検索結果表示のために、以下の名前を定義しておきます。
表3.検索結果を表示するための名前定義
名前 | 範囲 | 目的 |
---|---|---|
keyword | A2セル | 検索キーワード入力用 |
word_title | A4セル | 用語タイトル |
meaning_title | B4セル | 意味タイトル |
date_title | C4セル | 更新日時タイトル |
また、コマンドボタン「cbSearch」を配置します(表示名は「検索する」)。
図3のような準備ができればOKです。