VBAでIEを操作し、nexco西日本のサイト(https://search.w-nexco.co.jp/route.php)から
高速料金を取得するexcelファイルを作成しようとしています。
class属性のテキストをgetElementsByClassName(0).innertextで取得しようと試みているのですがうまくいきません。
以下のコードを実行すると「オブジェクト変数またはWithブロック変数が設定されていません。」という、
エラーが表示されてしまいます。ただ、デバックから継続すると、必要な情報を表示することができますが。
初めにエラーが表示される原因がわかりません。原因がわかる方がいればご指摘をお願いします。
VBA
1Dim IE As Object, Obj As Object 2'IE起動 3Set IE = CreateObject("InternetExplorer.Application") 4 5'IEの操作設定 6IE.Visible = True 7 8'サイトを開く 9IE.Navigate "https://search.w-nexco.co.jp/route.php" 10 11'IE読込待ち 12Do While IE.Busy Or IE.ReadyState < 4 13 DoEvents 14Loop 15 16'出発地 17IE.document.getElementsByClassName("iptTxt grid175 clearfix")(0).Value = "浜松西" 18IE.document.getElementsByClassName("iptTxt grid175 arrive clearfix")(0).Value = "名古屋西" 19 20'検索 21For Each Button In IE.document.getElementsByClassName("submit-btn") 22 If Button.Value = "検索する" Then 23 Button.Click 24 Exit For 25 End If 26Next 27 28Do While IE.Busy Or IE.ReadyState < 4 29 DoEvents 30Loop 31 32MsgBox IE.document.getElementsByClassName("point")(0).innerText 33 34End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。