はじめに

今回は、インターネット上の百科事典「Wikipedia」をExcelから利用してみます。ブラウザの画面では情報が多すぎますが、APIを使うことにより、要約されたテキストとして取得できるので、用語一覧などを作る際にも便利です。動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。

図1.完成サンプル

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と比較してみましょう。

図2.XML形式とJSON形式

JSONではこのように、データ全体を{}で囲み、1つの要素は、"キー":"値"で表記します。構造体は、{要素1,要素2,・・・}、配列は、[要素1,要素2,・・・]で表記します。JSONの解析には、JScriptの力を借りる必要がありますが、FacebookなどXMLに対応していないAPIもありますので、この機会にJSONの扱いを習得しておきましょう。

Excelによる開発

Excelによる開発は、以下の手順で行います。

  1. 各種の準備を行う
  2. HTTP通信を行うVBAを記述する
  3. JSONデータをセルに転記するVBAを記述する

各種の準備を行う

検索キーワード入力と、検索結果表示のために、以下の名前を定義しておきます。

表3.検索結果を表示するための名前定義

名前 範囲 目的
keyword A2セル 検索キーワード入力用
word_title A4セル 用語タイトル
meaning_title B4セル 意味タイトル
date_title C4セル 更新日時タイトル

また、コマンドボタン「cbSearch」を配置します(表示名は「検索する」)。

図3のような準備ができればOKです。

図3.検索画面の準備