スポンサーリンク
ExcelやOutlookで使えるVBAでInternet Explorerを操作する方法をまとめます。
今回は、VBAを使って、現在Internet Explorerで開いているウィンドウの数を調べます。これを応用すれば、新しいタブでウィンドウが開かれたことを検知することができます
- VBAでIE(Internet Explorer)を立ち上げる方法はコチラ。
- VBAで開いたIE(Internet Explorer)でボタンやチェックボックスの操作をするのはコチラ。
- 現在パソコンで開いているIE(Internet Explorer)のウィンドウの数を調べる方法はコチラ。
ObjIEクラスの例
例によってまずはサンプル。以下のコードを、こちらで作成したObjIEの下方にコピペして使っていくとよい。
Public Sub FindWindow(Str01 As String)
Dim ObjShell As Object
Set ObjShell = CreateObject("Shell.Application")
Set Objshells = ObjShell.Windows
For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then
If ObjWindow.LocationName Like Str01 & "*" Then
Set ObjIE = ObjWindow
GoTo L2:
End If
End If
Next
MsgBox ("該当のウィンドウが見つかりませんでした。")
L2:
End Sub
FindWindow()の使い方説明
Str01 →取得したいIEのタイトル(ページ名称など)
IEが開いている状態でそのIEをvbaで操作したい場合に利用する。本関数で取得したWebページはvbaで操作が可能になる。
FindWindow() の仕組み説明
ObjShell.WindowsでPC上で開いているShellオブジェクトを取得する。
取得したShellオブジェクトの種類をひとつづつ確認し、中身がInternet Explorer(HTMLドキュメント)であった場合、該当のタブの名称を確認する。
名称が指定の文字列と前方一致する場合、処理を停止する。