#概要
InternetExplorerをExcel-VBA経由で操作するサンプルを記述する。
Google検索を自動で行い、検索数を取得してみる。
Excel単体テスト仕様書との連携が待たれない。
#コード
参照設定:
Microsoft HTML Object Library
Microsoft Internet Controls
Module1.bat
Attribute VB_Name = "Module1"
Option Explicit
Private Const URL_TARGET As String = "http://google.co.jp/"
Private Const TIME_MINIMUMWAIT As Integer = 1
Private Const TIME_MAXWAIT As Integer = 3
Public Sub Main()
Dim ie As InternetExplorer
Dim doc As HTMLDocument
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
IENavigate ie, URL_TARGET
Set doc = ie.document
With doc
.getElementById("gbqfq").Value = "google"
.getElementById("gbqfba").Click
End With
IEWaitReady ie
Range("A1").Value = doc.getElementById("resultStats").innerText
ie.Quit
Set doc = Nothing
Set ie = Nothing
End Sub
Public Sub IENavigate(ByRef ie As InternetExplorer, ByVal url As String)
ie.navigate url
IEWaitReady ie
IEWaitFor
End Sub
Public Sub IEWaitReady(ByRef ie As InternetExplorer)
Do While ie.Busy = True Or ie.readyState <> 4
DoEvents
Loop
IEWaitFor
End Sub
Public Sub IEWaitFor(Optional ByVal second As Integer = -1)
Dim endTime As Date
If (second < 0) Then
Do While second < TIME_MINIMUMWAIT
second = Int(Rnd * TIME_MAXWAIT)
Loop
End If
endTime = DateAdd("s", second, Now)
While Now < endTime
DoEvents
Wend
End Sub