ジョルダンの乗換案内を、VBAで操作したいのですが、詰んでしまいました・・・
Sub 乗換案内()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "http://www.jorudan.co.jp/"
Const READYSTATE_COMPLETE As Long = 4
Do While objIE.Busy = True
DoEvents
Loop
Do Until objIE.ReadyState = READYSTATE_COMPLETE
Loop
objIE.document.all("eki1").Value = "東京"
objIE.document.all("eki2").Value = "品川"
objIE.document.Forms(0).submit
Set objIE = Nothing
End Sub
を実行してVBAでIE操作をしたいのですが、うまくできません。
【質問1】
objIE.document.Forms(0).submit
はエラーにならないのですが、検索ボタンがクリックされず(検索結果は表示されず)
詳細検索画面
http://www.jorudan.co.jp/norikae/cgi/nori.cgi?rf …
に進んでしまいます。
objIE.document.Links(0).Clickにしてもダメでした。
【質問2】
出発地、到着地の指定はできたのですが日時の指定ができません。
2012/08/01 8時00分をプルダウンに入れたいのですが、
objIE.document.allをどのようにすればいいのでしょうか?
ご教授よろしくお願いします。
ソースを見ると、
<script type="text/javascript">select_day();select_time();</script>
となっていて、nameがありません。
No.2ベストアンサー
- 回答日時:
iwateryokou26さん
はじめまして。
以下のコードでできると思います。
> objIE.document.Links(0).Clickにしてもダメでした。
検索ボタンにも名前がついているので直接クリック命令をした方が良いと思います。
> 出発地、到着地の指定はできたのですが日時の指定ができません。
このエリアはJavaScriptで処理しているようで、HTMLには表示されません。
http://eki.jorudan.co.jp/com/js/com_v1.js?0301
を分析する必要がありますね。
Sub 乗換案内()
Const READYSTATE_COMPLETE As Long = 4
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
.Navigate "http://www.jorudan.co.jp/"
Do While (.Busy = True) Or (.ReadyState <> READYSTATE_COMPLETE)
DoEvents
Loop
End With
With objIE.document.all
.eki1.Value = "東京" ' 出発地
.eki2.Value = "品川" ' 到着地
.Dym.Value = 201208 ' 年月
.Ddd_slc.Value = 1 ' 日
.Dhh.Value = 8 ' 時
.Dmn1.Value = 0 ' 分(10分単位)
.Dmn2.Value = 0 ' 分( 1分単位)
.s.Click ' 検索クリック
End With
Set objIE = Nothing
End Sub
はじめまして。ご回答ありがとうございます。JavaScriptで処理しているからなのですね。
せっかくコードを頂いのですが.s.Clickの部分でエラーになり、ログインできませんでした・・・
No.3
- 回答日時:
iwateryokou26さん
No2です。
すみません。前回はできたと思ったのですが…
以下の所を修正して試してください。
.s.Click ' 検索クリック
↓
objIE.document.all("S").Click ' 検索クリック
No.1
- 回答日時:
わざわざ、VBAでそこまでしなくても、
フォームからhttp://www.jorudan.co.jp/norikae/cgi/nori.cgiにGETでデータ飛ばしてるだけなので、
VBAでURLを組み立ててあげれば良いと思いますが・・・。
http://www.jorudan.co.jp/norikae/cgi/nori.cgiの後に?を付けてパラメーターを連結するだけなので簡単です。
パラメータ名(フォームの部品のname属性)=値(フォームの部品のvalue属性)の形式で書きます。
複数のパラメータを送信する場合は、&で囲みます。
2バイト(日本語など)を送信する場合は、URLエンコード(%E6%9D%B1%E4%BA%ACなど)する必要があります。
VBAでURLエンコードするにはコチラを参照→http://bit.ly/PDLQ35
ざっとフォームを見てみると、URLのパラメータとフォームの対応は以下のようになっています。
http://www.jorudan.co.jp/norikae/cgi/nori.cgi?(このまま)
eki1=出発地(URLエンコード)&
eki2=到着地(URLエンコード)&
eki3=経由駅(URLエンコード)&
via_on=1&(このまま)
Dym=年月(201207)&
Ddd=日(1~31)&
Dhh=時間(0~23)&
Dmn1=十分(1~5)&
Dmn2=一分(0~9)&
Cway=検索種別(0:出発、1:到着、2:始発、3:終電)&
C7=1&(このまま)
C2=飛行機(0:おまかせ、1:使わない)&
C3=高速バス(0:おまかせ、1:使わない)&
C1=有料特急(0:おまかせ、1:使わない、2:100km以上なら使う)&
C4=優先座席(0:指定席、1:自由席、2:グリーン席)&
C6=乗換時間(0:短め、1:標準、2:余裕を持つ)&
S=%E6%A4%9C%E7%B4%A2&(このまま)
Cmap1=0&(このまま)
rf=nr&(このまま)
pg=0&(このまま)
eok1=&(このまま)
eok2=&(このまま)
eok3=&(このまま)
Csg=1(このまま)
※URLエンコードはエンコードが必要です。
※このままは、必要なので変更せずに連結してください。
これをヒントにURLをVBAで生成するのが一番早いと思います。
文字列の連結だけですし。
できたURLを
Sub 乗換案内(Url)
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate Url
Set objIE = Nothing
End Sub
に引数として渡せばいいかと思います。
なるほど~!そのような方法もあるのですね。
ひとつひとつ細かく説明していただいて助かります!さっそく試してみようと思います!
ありがとうございました。大変参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
2024年に成し遂げたこと
今年も残すところわずか。 皆さんが今年達成したことを教えていただきたいです。 どんな小さなものでも構いません。
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
「黒歴史」教えて下さい
若気のいたりでやってしまったけれど、いまとなっては封印したい… そんなあなたの黒歴史を教えて下さい。
-
excle VBA とweb上の検索を利用して出発駅から到着駅まで所要時間と運賃を出したいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FireFoxのjavascriptで自動でキ...
-
TexでΣの添え字の位置直し
-
翌月を取得するGASが分かりません
-
window.openでタイトル名の指定
-
同じIDで定義した要素の配列を...
-
javascript 変数名の連結をしたい
-
小数点以下を5刻みで表示
-
googleスプレッドシートのApps ...
-
スロットマシン風の表示
-
ジェネレーターの作り方
-
google apps scriptの終了のさせ方
-
JavaScriptで、現在日時から100...
-
javascriptで同文字の出現回数...
-
JAVAスクリプトで指定時間以降...
-
Boolean型配列中のTrueの有無を...
-
javaScriptのコードの修正をお...
-
nullまたはオブジェクトではあ...
-
【JavaScript】数当てゲームを...
-
innerHTML実行後のイベント
-
【西暦等の変換】
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Latexに関する質問です。
-
javascriptの基本的なことだと...
-
DOM要素を削除しても、イベント...
-
VBAでIEのボタンを押してメッセ...
-
excle VBA とweb上の検索を利用...
-
TexでΣの添え字の位置直し
-
XMLでのAttributeを持ったNode...
-
Null またはオブジェクトではあ...
-
onClickイベントの変更方法
-
javascriptのdocument.allにつ...
-
重い処理とはどのようなものが...
-
webページ上のTabキーの動き
-
VBAのIE操作でframe構造のサイ...
-
UWSCでオンクリックのボタンを...
-
スクロールバーの位置に合わせ...
-
FireFoxのjavascriptで自動でキ...
-
プルダウンを複数使い、ページ...
-
ラジオボタンでreadonlyの切替え
-
JavaScriptのdocument.all("変...
-
Javascriptで定期的にF5を押す...
おすすめ情報