VBAでIE(Internet Explorer)を操作する~すでに開いているIEを操作する~

スポンサーリンク

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ドキュメント)であった場合、該当のタブの名称を確認する。

名称が指定の文字列と前方一致する場合、処理を停止する。

カテゴリーVBA

コメントを残す