前提・実現したいこと
お世話になっております。
IE操作によるスクレイピングをvbaで行っています。
今回の質問は、IEを操作し、サイト上で検索結果を表示させた時に「検索結果数」が表示されます。
その件数を取得するプログラムを書いてみたのですがうまく動きません。
私のプログラムの問題点・解決策をご教示していただけますと助かります。
よろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
実行時エラー '91'
オブジェクト変数または with ブロック変数が設定されていません。
該当のソースコード
Sub 入札情報サービスからの情報取得() Dim ie As Object Dim time As Long Dim num As Object time = 1000 Const rurl As String = "http://www.i-ppi.jp/IPPI/SearchServices/Web/Gyomu/Keika/Search.aspx" Set ie = CreateObject("InternetExplorer.application") ie.Visible = True ie.navigate rurl Do While ie.Busy Or ie.readyState <> 4 'IE読み込む DoEvents Loop ie.document.getElementById("drpTopKikanInf").Value = "0" '大分類選択 ie.document.getElementById("drpTopKikanInf").onchange Sleep time '待ってあげないと処理がうまく進まないため入れた ie.document.getElementById("drpLargeKikanInf2").Value = "21" '中分類選択 ie.document.getElementById("drpLargeKikanInf2").onchange Sleep time '待ってあげないと処理がうまく進まないため入れた ie.document.getElementById("drpMiddleKikanInf").Value = "09" '小分類選択 ie.document.getElementById("drpMiddleKikanInf").onchange Sleep time '待ってあげないと処理がうまく進まないため入れた ie.document.getElementById("drpSmallKikanInf").Value = "129" '細分類選択 Sleep time ie.document.getElementById("drpCount").Value = "100" '一覧画面の表示件数を100件に Sleep time ie.document.getElementById("btnSearch").Click '検索開始のボタンを押す Sleep time Set num = num.document.getElementById("lblSearchCount").innerText Debug.Print num End Sub
試したこと
読み込みを終わるまで待つようにsleep timeを入れてみましたが、結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
該当のIDのHTMLは以下の通りです
<span id="lblSearchCount" class="search_count">216</span>
Excel2019にて作成しました。
https://teratail.com/questions/260328
参考になるかも知れません。
回答3件
あなたの回答
tips
プレビュー