VBAを用いてIEを保存する方法 削除
Message#2 2016年6月2日(木)17時27分 From: ジャッカル |
利用規約の同意のページ(1つ前のページ)がコピーされているってことは前と同じでページの読み込みが完全に終了しないまま次の処理にうつったってことじゃないかな? もうちょっと時間とめてみるとか > > VBAを用いてIEを保存する方法を模索しているものです。エクセルにある値を検索窓に挿入→検索ボタンをクリック→利用規約の同意ボタンをクリック→検索結果の表示→その結果をエクセルにコピーし、保存するマクロを組んでおります。以下のコードですが、エクセルに結果をコピーすることはできましたが、コピーされているものが検索結果ではなく、利用規約の同意のページ(1つ前のページ)がコピーされています。どのようにしたら改善できるかご教授いただけたら幸いです。よろしくお願いいたします。 > > > Public Sub IE基本_個体識別番号検索成功() > > > > > > Dim ie As New InternetExplorer > > > > > > ie.navigate "https://www.id.nlbc.go.jp/top.html" > > > > > > ie.Visible = True > > > > > > While ie.Busy = True And ie.readyState < READYSTATE_COMPLETE > > > > > > DoEvents > > > > > > Wend > > > > > > Dim doc As HTMLDocument > > > > > > Set doc = ie.document > > > > > > Dim sel As IHTMLSelectElement > > > > > > Dim inp As IHTMLInputElement > > > > > > Set objInpTxt = ie.document.getElementsByName("txtIDNO")(0) > objInpTxt.Value = Range("A1").Value > > > > > > Dim btn As HTMLInputElement > > > > > > Set btn = doc.getElementsByTagName("input")(0) > > > > > > btn.form.submit > > > > > > While ie.Busy = True And ie.readyState < READYSTATE_COMPLETE > > > > > > DoEvents > > > > > > Wend > > > > > > Application.Wait Now + TimeValue("00:00:05") > > > > > > > > Set btn = doc.getElementsByTagName("input")(0) > > > > > > btn.form.submit > > Application.Wait Now + TimeValue("00:00:05") > > Dim objWb As Workbook > > Set objWb = Workbooks.Add > > Set tbl = ie.document.getElementsByTagName("table")(0) > > Set tr = tbl.getElementsByTagName("tr") > > > Set th = tr(0).getElementsByTagName("TH") > > For c = 1 To th.Length > Cells(1, c).Value = th(c - 1).innerText > Next > > For r = 2 To tr.Length > > Set td = tr(r - 1).getElementsByTagName("td") > > For c = 1 To td.Length > > Cells(r, c).Value = td(c - 1).innerText > > Next > > Next > > Dim fileName As String > > fileName = Range("A15") > > ActiveWorkbook.SaveAs fileName > > > End Sub |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。