VBAを使いこなそう!! -7ページ目

VBA. IE制御 開いているIEブラウザの数を数える IE操作

VBA. IE制御 開いているIEブラウザの数を数える IE操作



Shell.windowsでカウントされているウィンドウはなんだろう??


For Each objWindow In objShell.Windows


Debug.Print TypeName(objWindow.document)


Next



Debug.printに表示された結果は・・・


   HTMLDocument
   HTMLDocument
   HTMLDocument
   HTMLDocument
   IShellFolderViewDual2



IShellFolderViewDual2  ってなにぃい??叫び


IEじゃないだろうものがカウントされている。。どうりで数が合わないはずだわーーー。


IShellFolderViewDual2   これは、どうやら  エクスプローラーのようよ。



だったら、IEだけを数えるようにせねば・・・



というわけで、


For Each objWindow In objShell.Windows


If TypeName(objWindow.document) = "HTMLDocument" Then
    OpenCount = OpenCount + 1
End If


Next


このようにしたら、開いているIEだけをカウントしてくれるようになりました!


わーーい   ヾ(✿❛◡❛ฺฺ)ノ





ワード・エクセル・パワーポイント・アクセスを動画で楽々マスター!動画パソコン教室!【楽ぱそDVD】




VBA IE制御 URLを指定して新しいタブで開いてIDとパスワードを入力してログインする2

VBA IE制御 URLを指定して新しいタブで開いてIDとパスワードを入力してログインする の 記事    のなぞ



謎はIEのウィンドウのカウントが実際に開いているよりも 1 多いんですよね。

何を持って・・・ 1 多いのでしょう?


↓のコードで


OpenCount = 0
For Each objWindow In objShell.Windows

OpenCount= OpenCount+ 1

Next


shellアプリケーションの windows.count プロパティは、先頭の要素が0なので(← 要するに 1からじゃなくて、0(ゼロ)から始まるので、カウントした結果が、実際よりも 1 多くなるというわけです。


なので、windows.countの結果から1引いたりたしたり。。するとうまくいくのかと思いきや・・・



ちがうよーーー!! 

何が違うかって、開いているIEのウィンドウの数が実際よりも多いよぅ!!



んんん? というわけで調べてみました。



エクセルマクロ(VBA)の作り方講座(Excel2007版)

アメブロにi2iアクセス解析を設置してみる

アメブロにi2iアクセス解析を設置してみよ~!



VBAには関係ないですけどね、他の人のブログを見ていると設置した方がよさそうなので設置してみました。


簡単に設置方法を説明しますね^^