Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6716 / 9994 ←次へ | 前へ→

【6477】IEオブジェクトでWebページ取得で不満
質問  bossa777  - 05/10/14(金) 1:12 -

引用なし
パスワード
   はじめまして。
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

520 hits

【6477】IEオブジェクトでWebページ取得で不満 bossa777 05/10/14(金) 1:12 質問
【6478】Re:IEオブジェクトでWebページ取得で不満 かみちゃん 05/10/14(金) 2:12 発言
【6481】Re:IEオブジェクトでWebページ取得で不満 小僧 05/10/14(金) 8:59 発言
【6501】Re:IEオブジェクトでWebページ取得で不満 bossa777 05/10/16(日) 3:43 お礼

6716 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078242
(SS)C-BOARD v3.8 is Free