VBAを用いてIEを保存する方法 削除
Message#1 2016年5月31日(火)22時22分 From: 初心者 |
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 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。