記事が前後してしまいますが、起動済みのIEページをつかまえるマクロを作成しました。以前投稿した記事にやり方はすでに書いていますが、今後作成していくマクロ群として組み込めるよう、プロシージャを分けて、パーツ化するようにしています。
起動済みのIEをつかまえる手順は、「三流君」ことKen3さんのVBAコードが分かりやすいです。前回同様、参考にさせてもらっています。
以下のコードで、プロシージャ「Sub TEST_GetIEpage()」を実行すると、
先ず、ターゲットページのページタイトルと、URLを指定して、プロシージャ「GetIEpage」を呼び出しています。
ページを特定するのはURLだけでいいのでは?という考えもありますが、指定方法に幅を持たせるということで入れています。
「GetIEpage」 の動きを自分用にメモしておきます。
Set objIEandEXPL = CreateObject("Shell.Application")
ここで、すでに起動しているWindowsシェルをまとめています。
この「objIEandEXPL」には、起動中のIEページ群と、ファイル管理のエクスプローラーが含まれています。
If TypeName(objWindow.document) = "HTMLDocument" Then
各Windowのタイプを確認しています。
IEページなら、HTMLDocument
エクスプローラーなら、IShellFolderViewDual3
となりますのでIEページ をつかまえるため、タイプがHTMLDocumentのものを捜します。
HTMLDocument を見つけたら、部分一致で、ページタイトルと、URLを確認します。
それでOKなら、そのWindowを 変数objIEにセットします。
今回の例では、ページを見つけた/見つからない のメッセージボックスを表示させて終わりにしていますが、
MsgBox "IEページが見つかりました。", vbInformation, "ページ発見"
の代わりに、 objIE.document.all(0).innerHTML で、ソースコードを取得することができます。
debug.print で出力すると、ソースの前半が消えてしまいますので、全部を取得するには、外部テキストに吐き出してやる必要があります。
先日紹介しました外部への吐き出しマクロ 「PrintData2」を使用して、
PrintData2 objIE.document.all(0).innerHTML
とすれば、ソースコードをテキストファイルに出力することができます。
========================================