アプリ版:「スタンプのみでお礼する」機能のリリースについて

出発地点は固定です。
・エクセルシートのセルに目的地の郵便番号入力して選択した状態にする。
・マクロを起動するとNAVITIMEのホームページが表示され出発地点から目的地までの自動車ルートが検索される。
・検索の結果の「距離」と「高速料金」がエクセルシートの「目的地郵便番号」の隣に表示される。
・ホームページを閉じる。

上記のVBAを考えています。
まだマクロで、NAVITIMEのホームページを開くことしか出来ませんので、
どなたかお力をお貸し下さい。

A 回答 (2件)

こんにちは



No1様の回答にあるように、APIが用意されているので、そちらを利用するのが良さそうに思います。
とは言え、数少ない利用であればスクレイピングで行うのもありかも。
サイトの仕組みによっては難しいものもあるので、難しい場合はやはりAPIということになると思います。

>まだマクロで、NAVITIMEのホームページを開くことしか出来ませんので、~~
方法のイメージは少々違いますが、どうやら表示できれば、ほぼ八割方はできていると言えるかもしれません。

NAVITIMEのサイトの構造がわからないので、少しテストしてみましたが、概ねURLのクエリ部で制御が可能になっているようです。
クエリ部は構造的に
 start={
  "name":"東京都",
  "lat":35.719269,"lon":139.766606,
  "road-type":"default"
 }
 goal={
  "name":"京都府",
  "lat":33.638825,"lon":130.806211,
  "road-type":"default"
 }
 type=car
 car=only.multi.turn
 start-time=xxxx-xx-xxTxx:xx:xx
のような形式になっていて、この形で直接アクセスすればそのまま結果が表示されます。
出発地、目標地の地名(name)は表示用に利用するだけのようで、整合が取れていなくても問題はなさそうです。
これに対して、経緯度データのlat、lonは、当然ながら正しい値が必要となります。
項目(key)は他にもまだいくつかありますが、上記がきちんと設定されていれば、結果を表示してくれます。
(上記が不足だと、検索入力画面が表示されます)
後は、結果から必要な情報を読み取れば良いだけなので、さほど難しくはないかと。

質問者様が、実際に、どのような環境を想定しているのか不明ですが、VBAと直接の相性が良いのはIEでしょうか。
Seleniumを利用してChromeでアクセスする方法もあるようですが・・・
いずれにしろ、HTMLから値を読み取る程度の制御であれば、検索しさえすれば、すぐに見つかるものと思います。
以下は、一例です。
https://www.fastclassinfo.com/entry/vba_ie_control
https://www.vba-ie.net/
https://www.sejuku.net/blog/72067

>どなたかお力をお貸し下さい。
上記が充分なヒントになるようであれば、実現の可能性は高いと思います。
『丸投げで作って欲しい』というおつもりなら、道遥かでしょう。
    • good
    • 1
この回答へのお礼

ご回答、ありがとうございます。

fujillinさんの言うとおりエクセルとIEで検索と抽出ができないか考えておりました。

fujillinさんには、テストしていただいたりサイトの構成を調べていただいたり色々考えていただきいて、
本当にありがとうございます。

私では、「こんな事できないかな?」との考えだけでやみくもに色々なサイトを見に行っては、
どうしたら良いのだろうと悩んでいるだけでした。

経緯度のデータでアクセスできれば、
私の考えている事が出来そうだと教えていただき望みが持てて嬉しいいです。

まだまだ教えていただいたアドバイスさえも、知識不足で理解しきれていませんが、
fujillinさんが調べていただいた事を無駄にしないように知識を高めて理解し、目標を実現させたいと思います。

お手数をおかけして、参考になるサイトも複数教えていただき、ありがとうございます。
頑張って勉強してまいります。

お礼日時:2020/02/26 21:52

APIを使用するのが一般的。

(有料)

HTMLを解析して手入力をエミュレートすれば出来ると思うが、あなたの技術レベルでは絶対無理。

諦めよう。
    • good
    • 0
この回答へのお礼

ありがとう

返答ありがとうございます。
ご指摘の通り、私ではHTMLを見ても分かりません。
VBAが書ける方に、お力をお貸し頂きたいと考えて投稿致しました。
引き続きエクセルのマクロを使ってできないか、
探したいとは思います。
ありがとうございました。

お礼日時:2020/02/25 19:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!