駅すぱあとAPI+Excelで交通費精算したかったけれど、関数の上限255文字によりHYPERLINK関数でエラー発生

Excelの活用でもっと事務処理を時短化

無料で公開されているAPIをExcelで使えないか実験をしています。

「駅すぱあとAPI」も、登録すれば一部機能が無料で使えますが、実用化するには問題山積みでした。

駅すぱあとAPIを使用するための手順

まずは、VBAを使わずにExcelの関数だけで、駅すぱあとAPIを使ってみることにしました。

駅すぱあとAPIを無料で使うには、「フリープラン」への申込みが必要です。

申込フォームに、名前・メールアドレス・使用ドメイン・目的などを入力して送信するだけなので、申込みはとっても簡単です。

その日のうちに、返信メールでAPIを使用できるようになるアクセスキーを教えてもらえました。申し込みをしてから2時間以内に返信されました。

>>>駅すぱあとWORLDサイトへ

駅すぱあとAPIの使い方

ドキュメントが充実していて、サンプルコードも用意されているので、駅すぱあとAPI(駅すぱあとWebサービス フリープラン)を利用する方法はとっても簡単でした。

サンプルコード内のアクセスキーを自分のものに変えればいいぐらい。

>>>駅すぱあとWebサービス フリープランドキュメントページ

APIテスターも用意されているので、プログラムを書く前にAPIの呼び方が正しいかどうかをサイト上で確認することもできます。

>>>駅すぱあとWebサービス API Tester

駅すぱあとWebサービス フリープランで利用できる機能例

駅すぱあとAPIをExcelから呼び、経路探索の結果から交通費を自動で取得できるような「交通費精算Excelファイル」の完成を目指していましたが、無料だとちょっと難しそうです。残念ながら。

フリープランで利用できるパラメーターが限られている

フリープランで使える経路探索のパラメーターは次の通り。

format XML/json
from 出発駅
to 到着駅
via 経路駅
date 日付
time 時間
searchtype 探索種別:発/着/終電/始発探索
redirect 結果をリダイレクトするかどうか
contentsMode 生成するURLの種類:PC/スマホ

条件であるパラメーターが限られているため、きめ細やかな条件設定には対応しきれません。

フリープランでの経路探索結果はURLで返される

一番痛かったのが、フリープランの場合は、結果がURLで戻ってきてしまうことです。
XMLでもjsonでもどちらでも、データでリターン値がほしかったのですが、URLが戻ってきてしまいます。

そのため、リターン値の中から交通費を切り出して取得するという当初の方法が使えなくなってしまいました。

Excel関数の文字数制限は255文字まで

リターン値がデータではなくURLのため、HYPERLINK関数で自動でサイトを開き、サイト内をスクレイピングすることで交通費を取得する方法に切り替えることにしました。

ところが、Excel関数には、文字数制限があり、255文字を超えてしまうとエラーになってしまうのです。

そのため、この方法もNGに。

お金を払って駅すぱあとのスタンダードプランにすれば、マルっと解決なのですが、予算無いので…

結局、VBAで作ることにしました。

VBAで駅すぱあとAPIを使い、交通費を自動取得するマクロは別記事で公開しています。

Excel VBAでYahoo路線検索を使って交通費を自動で取得する方法

Related Posts