Web サイトから特定のデータを抽出しています。テーブルから少なくとも百万行に対してこのタスクを実行する必要があります。MySQLと接続するためにExcel VBAを使用しています。
- MySQL を使用して Excel VBA に接続し、テーブルから著者の姓名を取得しています。
- 著者の名、姓については、Linkedin を検索クエリに追加し、Google で検索しています。
- 検索結果から、最初の検索結果ページを HTML 形式で開き、いくつかの情報を抽出しています。
- 抽出した情報の一部を MySQL テーブルに戻します。
上記の手順に従って、すべてが正常に機能します。ただし、10行を超えて実行しようとすると、次のエラーが発生します。
自動化エラー、リモート プロシージャ コールが失敗し、実行されませんでした
IEの開閉に関係していることに気づきました。私のプログラムには、次のコードがあります。
新しい IE アプリケーションを作成するために、以下のように定義しました。
Set ie = New InternetExplorer
Set RegEx = New RegExp
Dim iedoc As Object
ie.Navigate "http://www.google.com/search?hl=en&q=" & FirstName & "+" & LastName &
"+linkedin&meta="
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
MyStr = ie.Document.body.innerText
Set RegMatch = RegEx.Execute(MyStr)
1人の著者のデータを抽出した後、最後に以下のコードがあります。
ie.Quit
Set RegEx = Nothing
Set ie = Nothing
Dim strBatchName As String
strBatchName = "F:\command.bat"
Shell strBatchName
command.bat には次のコードがあります。
taskkill.exe /F /IM iexplore.exe /T
テーブルの行数が 10 未満の場合、問題なく動作します。ただし、行数が増えると、上記のエラーが発生します。