初めてVBAを使って、IEからデータを引っ張りたいと思ったのですが、出来なくなってしまいました。
参考にしたサイトは
https://tonari-it.com/vba-ie-list/
です
商品の価格調査を行っておりまして、それをVBAを使って自動化したいと考えております。
やりたいこと
・A1セルにある商品名を、サイトで検索し、出てきたページに記載ある数値をB1セルに入力。
下記のコードを実行すると、エラーは起きないのですが、数値も入力されませんでした。
VBA
1Sub 完成版() 2 3 Dim ieApp As Internetexplorer 4 Set ieApp = New Internetexplorer 5 ieApp.Visible = True 6 ieApp.Navigate "検索するサイトのURL" 7 8 Do While ieApp.Busy = True Or ieApp.ReadyState < READYSTATE_COMPLETE 9 DoEvents 10 Loop 11 Dim doc As HTMLDocument 12 Set doc = ieApp.Document 13 14 Dim sbox As IHTMLElement 15 Set sbox = doc.getElementsByName("商品名")(0) 16 17 Dim tBox As IHTMLElement 18 Dim wb As Workbook 19 Set wb = ThisWorkbook 20 21 Dim sh As Worksheet 22 Set sh = wb.ActiveSheet 23 24 Set tBox = doc.getElementsByName("商品名")(0) 25 tBox.Value = sh.Range("A1").Value 26 27 Dim sButton As IHTMLElement 28 Set sButton = doc.getElementsByName("searchbutton")(0) 29 sButton.Click 30 31 Cells("1,2").Value = doc.getElementsByClassName("smaller")(0).innerText 32 33End Sub
読みづらい点も多々あるかと思いますが、
ご教授お願い致します。
L1にも何も入力されていませんか?
> 出来なくなってしまいました。
ということは以前はできていたということですか。
その時のコードは提示のコードと同じものですか。
radames1000さん
ありがとうございます。
... more
と表示されました
hatena19さん
ありがとうございます
誤解のある表現で申し訳ございません
以前出来ていたわけではなく
今回初めて作成し、初めて出たエラーです。
Cells("1,2")だとL1が指定されています。B1だとCells(1,2)です。
Set tBox = doc.getElementsByName("商品名")(0)
tBox.Value = sh.Range("A1").Value
の部分ですが、目的のテキストボックスにA1の値がちゃんと入力されていますか。
ステップ実行で確認してみてください。
https://www.excelspeedup.com/vbadebug/
Cells("1,2").Value の部分は間違いですね。
Cells(1, 2).Value が正解です。
初歩的な事で失礼いたしました。
B1には表示されましたが
「... more」はA1セルの値を入力する前のサイト上にある値のようです
hatena19さん
ありがとうございます
Set tBox = doc.getElementsByName("商品名")(0)
tBox.Value = sh.Range("A1").Value
の部分ですが、目的のテキストボックスにA1の値がちゃんと入力されていますか。
こちらはテキストボックスにA1セルの値が入力されていました
sButton.Click(検索ボタンクリック)で検索結果が表示されるまで時間がかかると思いますので、少し待機するようにするいいかと思います。
hatena19さん
ありがとうございます
sButton.Clickのしたに
Do While ieApp.Busy = True Or ieApp.ReadyState < READYSTATE_COMPLETE
DoEvents
Loop
を入れてみましたが、結果は変わりませんでした
検索後のページはieAppではなく、べつで指定する必要があるのでしょうか?
実際のURLの提示がないので、そのページがどのような動作をするのか確認できませんので、あくまで推測ですが、検索ボタンクリックで別URLへ移動しているのでしょうか。移動せずに同じURLのままなら、回答の方法を試してみてください。
回答1件
あなたの回答
tips
プレビュー