スポンサーリンク
ExcelやOutlookで使えるVBAでInternet Explorerを操作する方法をまとめます。
今回は、VBAを使って、現在Internet Explorerで開いているウィンドウの数を調べます。これを応用すれば、新しいタブでウィンドウが開かれたことを検知することができます。
- VBAでIE(Internet Explorer)を立ち上げる方法はコチラ。
- VBAで開いたIE(Internet Explorer)でボタンやチェックボックスの操作をするのはコチラ。
- 現在パソコンで開いているIE(Internet Explorer)のウィンドウの数を調べる方法はコチラ。
ObjIEクラスの例
例によってまずはサンプル。以下のコードを、こちらで作成したObjIEの下方にコピペして使っていくとよい。
Function GetNowWinCount() As Integer
Function GetNowWinCount() as integer
Dim ObjShell As Object
Dim i As Integer
Set ObjShell = CreateObject("Shell.Application")
Set Objshells = ObjShell.Windows
i = 0
For Each ObjWindow In ObjShell.Windows
If TypeName(ObjWindow.Document) = "HTMLDocument" Then
i = i + 1
End If
Next
GetWinCount = i
End Function
GetNowWinCount()の使い方説明
Functionとすることで、呼び出しもとに現在開いているIEのウィンドウ数を返す。イメージとしては、呼び出し元の関数から以下のように呼び出す。
Public sub main()
dim atai as integer
atai = GetNowWinCount
msgbox ( "ウィンドウの数は" & atai )
End sub
GetNowWinCount()の仕組み説明
ObjShell.WindowsでPC上で開いているShellオブジェクトを取得する。
取得したShellオブジェクトの種類をひとつづつ確認し、中身がInternet Explorer(HTMLドキュメント)であった場合、カウントをする。
Function関数なので、呼び出しもとに値を返すことに注意して使うこと。ちなみにInternet Explorer以外にも、shellオブジェクトとしてカウントできるものはいくつかある。