投稿日 | : 2003/04/02(Wed) 13:31 |
投稿者 | : しんじ |
Eメール | : |
URL | : |
タイトル | : Re: 再帰的に取得しなくて良いのですか? |
投稿したあとにうまくいかない事に気が付いてあっ・・・・って思って修正しました。
昨日の朝から夜中の1時ぐらいまで格闘していたので疲れているみたいです。。。。(笑)
せっかく教えてもらったのに再帰になっていない・・・・
と気付き修正しました。
LOCALウインドウでオブジェクトの内容も確認していき大分IEオブジェクトについて理解できてきました。
最終的には以下のコードとなりました。
クラスモジュールに記載してm_InsidentLogプロパティ経由で他のモジュールから
アクセス出来るようにしました。
結果教えて頂いたコードと殆ど変わりませんが......汗
再帰の部分に関してもデバックで理解する事が出来ました。
本当にありがとう御座います!!!
コードも非常にすっきりしている為、この状態で使用させて頂こうと思います。
IEの判定ですがTypenameで"IHTMLDocument"と"HTMLDocument"をTRUEで判定するようにしました。
他のものに関しては全てExplorerと判定させています。
問題が有るようでしたら御指摘くださいませ。
Private Sub GetHTMLText()
'-----------------------------------------------------------
'--
'-- HTML文書文字列取得
'--
'-----------------------------------------------------------
'--更新履歴:
'--
'-- 2003/4/2 作成
'-----------------------------------------------------------
Dim strLogBuf As String
'--ieオブジェクト:HDocVw.WebBrowser.Documentオブジェクトを参照
If ie Is Nothing Then
Exit Sub
End If
If ie.frames.length = 0 Then
strLogBuf = ie.documentElement.outerText
Debug.Print strLogBuf
m_InsidentLog = m_InsidentLog + strLogBuf
Else
Dim n As Long
For n = 0 To ie.frames.length - 1
GetHTMLText (ie.frames.Item(n).Document)
Next
End If
End Sub