Office関連

Excel 2013で駅すぱあとWebサービス APIの「経路探索」を使ってみました。

「駅すぱあとWebサービス API無償提供」を利用してみました。」で、駅すぱあとWebサービス APIを紹介しましたが、Twitterでサポートの方からAPIの使い方を公開しても良いとの話を伺いましたので、早速Excelから本APIを利用する方法を紹介します。

※ 本API(法人向け)を利用するには認証(API)キーが必須になりますので、まずはこちらのページから申し込みをして、キーを受け取ってください。

本APIを利用すると、駅や路線、運行会社の情報などを取得できるのですが、今回はRooteで探索結果を表示するためのURLを取得する「経路探索」を使用してみます。

■ リクエスト先

http://api.ekispert.com/v1/xml/search/course/light?key=(認証キー)

■ リクエストパラメーター(2013/10/4 時点の情報)

名称 データ型 説明
from string 出発駅(地)。駅コード(または駅名称)を指定可能です
to string 到着駅(地)。駅コード(または駅名称)を指定可能です
via string 経由駅(地)。駅コード(または駅名称)を指定可能です (省略可。省略時は指定なしとなります)
date int 探索日付(YYYYMMDD) (省略可。省略時は現在日付となります)
time int 探索時刻(HHMM) (省略可。省略時は現在時刻となります)
searchType string 探索種別 (省略可。省略された場合は、発時刻探索となります)
plane string 飛行機。利用する:true, 利用しない:false (省略可。省略時は利用するとなります)
shinkansen string 新幹線(のぞみ含む)。利用する:true, 利用しない:false (省略可。省略時は利用するとなります)
limitedExpress string 特急。利用する:true, 利用しない:false (省略可。省略時は利用するとなります)
bus string バス(路線バス・高速バス)。利用する:true, 利用しない:false (省略可。省略時は利用するとなります)
redirect string 結果をリダイレクトするかどうか。リダイレクトする:true, リダイレクトせずURL文字列を返す:false (省略可。省略時はリダイレクトせずURL文字列を返します)

Webサービスドキュメント – API – API仕様 – 探索 より

■ レスポンス例(XML)

<?xml version="1.0" encoding="UTF-8"?>
<ResultSet apiVersion="1.9.0.0" engineVersion="201309_03a">
  <ResourceURI>http://roote.ekispert.net/result?dep_code=22828&amp;arr_code=28626&amp;via1_code=&amp;yyyymmdd=20131001&amp;hour=13&amp;minute=15&amp;type=dep&amp;local=true&amp;highway=true&amp;dep=&amp;arr=&amp;via1=&amp;via2=&amp;via2_code=&amp;connect=true&amp;liner=true&amp;ship=true&amp;sleep=false&amp;surcharge=3&amp;sort=time</ResourceURI>
</ResultSet>

※ APIの詳細な利用方法は、ドキュメント(認証キーが記載されたメールに、キーと一緒にリンクが記載されています)に書かれているので、そちらを参照してください。

リクエストパラメーターは上記の通りで、今回は「from」(出発駅)「to」(到着駅)「date」(日付)「time」(時刻)を使用します。

各値はセルで指定することにして、とりあえず今回は下記セルを使います。

・認証キー:セルC2
・出発駅:セルC4
・到着駅:セルD4
・日付:セルE4
・時刻:セルF4

ExcelからWeb APIを利用するときに使う関数は、当ブログでも散々紹介している「WEBSERVICE」関数で、出発駅と到着駅には日本語が含まれるので「ENCODEURL」関数も合わせて使います。

・セルC6:

WEBSERVICE関数で取得したXMLデータから任意の値を抽出するには「FILTERXML」関数を使います。

・セルC7:

Rooteの結果URLが抜き出せたので、「HYPERLINK」関数を使ってリンクを設定します。

・セルC8:

Ekispert_02_01

上記関数を一つにまとめると、下記のようになります。

・セルG4:

Ekispert_02_02

エラー処理は入れていないので実用上は問題ありますが、Excel 2013で追加されたWEB関数と駅すぱあとWebサービス APIを使うと、上記のように簡単に路線探索が行えるようになります。

探索結果を直接XMLやJSONで取得したり、定期情報や時刻表を取得したりするには有償版が必要になりますが、無償版だけでも十分便利です!

ポータブル デバイスからファイルをコピーするVBAマクロ前のページ

Windows Azure MSDN 特典をアクティブ化しました。次のページ

関連記事

  1. Office アドイン

    [Officeアドイン]枠線(目盛線)の表示・非表示を切り替える方法

    ここ二週間ほど体調を崩していたので久しぶりのブログ更新です。久…

  2. Office関連

    PDFのしおり情報を出力するVBAマクロ

    Acrobatフォーラムの下記スレッドで当ブログへのリンクが貼られてい…

  3. Office関連

    WordやExcelでミニ ツール バーを非表示(無効)にする。

    WordやExcel、PowerPointといったOffice製品で文…

  4. Office関連

    SharpDevelopでExcel用COMアドインを作成する方法

    「SharpDevelopのインストールと日本語化」で紹介しているSh…

  5. Office関連

    goo.glで短縮URLを取得するVBAマクロ

    何年か前にHPで「goo.glで短縮URLを取得する」マクロを紹介しま…

  6. Office関連

    セル内にあるブックマークをカウントするWordマクロ

    Twitterを眺めていたら下記ツイートを発見しました。【Wo…

コメント

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

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP