VBAでスクレイピングしている初心者です。
Set objIE = CreateObject("Internetexplorer.Application")の初回、Objectを開放した2回目のSetの際などにもエラーガ表示されてしまいます。何も起きず、実行できる場合もあるのですが、考えうる原因・対応策は何かありますでしょうか?
なお、エラーの際は以下のようなメッセージが表示されます。
実行時エラー "ー2125469506 (8150002e)
このエラーコードに関連付けられたテキストが見つかりませんでした。
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) Sub test() Dim BasicWb As Workbook Set BasicWb = ActiveWorkbook Dim URL As String 'URL Sheets("Sheet1").Activate URL = ActiveSheet.Range("B3").Value 'URLを代入 Dim objIE As InternetExplorer 'IEオブジェクトを準備 Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット objIE.Visible = True 'IEを表示 objIE.navigate URL 'IEでURLを開く Call WaitResponse(objIE) '読み込み待ち Dim j As Long For j = 1 To 1 Call ieJS(objIE, "scrollTo(0," & objIE.document.body.scrollHeight & ")") Sleep 1000 Next j Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備 Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット Dim BeforeStr(10) As String '取り出す数 Dim i As Long Dim arMod(2) As Long Dim Wb As Workbook Set Wb = Workbooks.Add For i = 0 To 10 BeforeStr(i) = htmlDoc.getElementsByClassName("SearchList_item")(i).innerHTML arMod(0) = InStr(BeforeStr(i), "href") + 6 arMod(1) = InStr(BeforeStr(i), "target=") - 2 Wb.Worksheets("Sheet1").Cells(i + 1, "A").Value = Mid(BeforeStr(i), arMod(0), (arMod(1) - arMod(0))) Next i objIE.Quit Set objIE = Nothing Set htmlDoc = Nothing BasicWb.Activate Sheets("Template").Rows(1).Copy Wb.Activate Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Sheet2" Sheets("Sheet2").Rows(1).PasteSpecial (xlPasteAll) Sheets("Sheet1").Activate Dim desc As String Dim Price As String 'For i = 1 To Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row 'URLの数だけ処理 For i = 1 To 1 Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット objIE.Visible = True objIE.navigate Wb.Worksheets("Sheet1").Cells(i, "A").Value Call WaitResponse(objIE) Set htmlDoc = objIE.document
Long型の保有できる数値超えたとかそういうことではなくてですか?
https://www.tipsfound.com/vba/02008
Debug.printしてみてください。
