|
はじめまして。
Webサイトを参考にし、複数のURL(100件程度)へ次々にジャンプしてHTMLを解析
し、抜き取ったデータをテーブルに登録するACCESSプログラムを作りました。
しかし・・・処理が遅いです。
処理が遅いのはしょうがないとして、これを実行中に他のウインドウで
作業していると、フォーカスをACCESSにとられてしまい作業できません。
この問題を解決する方法を教えていただけないでしょうか。
HTMLを取得するコードは下記の通りです。宜しくお願いします。
Declare Function GetInputState Lib "USER32" () As Long
Public Function GetHTML(ByVal strURL As String, ByRef varHTML As Variant) _
As Boolean
Dim objIE As Object ' IEオブジェクト参照用
Dim datTimeLimit As Date
Dim tmpHTML As String
GetHTML = False
varHTML = ""
' インターネットエクスプローラーのオブジェクトを作る
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = False
' 指定したURLに飛ぶ
objIE.Navigate strURL
' 完了するまで待ち、n秒後にエラーを判断する
datTimeLimit = DateAdd("s", cTimeOut, Now()) ' 現在からn秒後を計算
Do While objIE.ReadyState <> 4
If GetInputState() Then DoEvents
If datTimeLimit < Now() Then 'n秒経過したか?
GoTo EXIT_GetHTML
End If
Loop
' HTMLソースを取出す
tmpHTML = objIE.Document.body.innerHTML '変数に代入
' 改行コードで分割
varHTML = Split(tmpHTML, vbCrLf)
GetHTML = True
EXIT_GetHTML:
Set objIE = Nothing
Exit Function
End Function
|
|