駅すぱあとAPI+Excelで交通費精算したかったけれど、関数の上限255文字によりHYPERLINK関数でエラー発生
このブログではアフィリエイト・アドセンス広告を利用しています
当ブログでは、アドセンス・アフィリエイト広告を掲載しています。
消費者庁が発表しているルールに沿って記事を作成していますが、問題のある表現を見つけた際にはご連絡ください。
無料で公開されているAPIをExcelで使えないか実験をしています。
「駅すぱあとAPI」も、登録すれば一部機能が無料で使えますが、実用化するには問題山積みでした。
目次(読みたいところへジャンプ!)
駅すぱあとAPIを使用するための手順
まずは、VBAを使わずにExcelの関数だけで、駅すぱあとAPIを使ってみることにしました。
駅すぱあとAPIを無料で使うには、「フリープラン」への申込みが必要です。
申込フォームに、名前・メールアドレス・使用ドメイン・目的などを入力して送信するだけなので、申込みはとっても簡単です。
その日のうちに、返信メールでAPIを使用できるようになるアクセスキーを教えてもらえました。申し込みをしてから2時間以内に返信されました。
駅すぱあとAPIの使い方
ドキュメントが充実していて、サンプルコードも用意されているので、駅すぱあとAPI(駅すぱあとWebサービス フリープラン)を利用する方法はとっても簡単でした。
サンプルコード内のアクセスキーを自分のものに変えればいいぐらい。
>>>駅すぱあとWebサービス フリープランドキュメントページ
APIテスターも用意されているので、プログラムを書く前にAPIの呼び方が正しいかどうかをサイト上で確認することもできます。
駅すぱあと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を使い、交通費を自動取得するマクロは別記事で公開しています。