[リストへもどる]
一括表示

投稿時間:2003/04/01(Tue) 00:46
投稿者名:しんじ
Eメール:
URL :
タイトル:
IEオブジェクトのDocumentオブジェクトについて
いつもお世話になっております。
起動済みのIEオブジェクトをSETで参照してテキスト全てを参照したいのですが
タイトルの文字列しか表示されません。
どうやったら参照出来るのかわかる方教えてください。
ウェブブラウザコントロールでないと無理なのでしょうか?

参照設定はMicrosoft Internet Controlです。
IEのクラス名はIEFrameをオブジェクト参照しています。

単純にIEのフレームを参照しているのでタイトルしか表示されないのでしょうか?
spy++で調べるとIE Serverというクラス名がブラウザなのですが、デスクトップのコントロールを
全て調べてもIE Serverというクラス名はありません。

別のIEをオブジェクト参照する手順はあまり公開されておりませんので、たいしたコードではないですが
記載しますのでよろしくお願いいたします。

Public Function SetIEObject()
'-----------------------------------------------------------
'--
'--   IEの起動ウインドウ数を取得しインシデント画面を検索
'--
'-----------------------------------------------------------
'--更新履歴:
'--
'-- 2003/3/31 作成
'-----------------------------------------------------------
    Dim ie As SHDocVw.WebBrowser
    Dim sw As New SHDocVw.ShellWindows
    Dim hwnd As Long
    Dim strClassName As String * 100
    Dim strCaption As String * 80
    Dim iHITCounta As Integer
    
    Const CONST_CLASS_NAME As String = "IEFrame"
    Const CONST_CAPTION_NAME As String = "××××画面 - Microsoft Internet Explorer"
    Const CONST_WINDOW_CAPTION As String = "◇◇◇◇画面"
    
    On Error GoTo Err:
    
    '--変数の初期化
    iHITCounta = 0
    bWindowShowFragg = False
    
    If sw.Count = 0 Then
        MsgBox "インターネットエクスプローラーが起動していません。", _
            vbInformation
        Exit Function
    Else
        For i = 0 To sw.Count - 1
            Set ie = sw(i)
            '--実行ファイルのフルパスを調べてEXEファイル名でエクスプローラーとIEを判定
            If Right(ie.FullName, 12) = "IEXPLORE.EXE" Then
            
                '--ハンドルを取得
                hwnd = ie.hwnd
                '--Windowのタイトル取得
                GetWindowText hwnd, strCaption, Len(strCaption)
                '--WindowのClass名取得
                GetClassName hwnd, strClassName, Len(strClassName)
                    
'---------------------------------------------------------------------
                    '--IEオブジェクトのドキュメントを変数に格納
                    Set ieDoc = ie.Document
                    Debug.Print ieDoc.documentelement.outertext

                    ↑ここでBODYのテキストが表示されなくて困っています
'---------------------------------------------------------------------
            End If
        Next
            Set ie = Nothing        '--メモリの開放
    End If
        '--HITしない場合はユーザーにフィードバックを行う
        If iHITCounta = 0 Then
            MsgBox "画面が起動していません。" _
                & vbCrLf _
                & "画面を表示してから実行して下さい。", _
                vbInformation
            Exit Function
        End If
    Exit Function
Err:
    MsgBox "SetIEObject関数内でエラーが発生しました。" _
        & vbCrLf _
        & "断続的に失敗を繰り返す場合は×××に問合せください。", _
        vbCritical
    Exit Function
End Function

投稿時間:2003/04/01(Tue) 10:56
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: IEオブジェクトのDocumentオブジェクトについて
>  '--IEオブジェクトのドキュメントを変数に格納
>  Set ieDoc = ie.Document
>  Debug.Print ieDoc.documentelement.outertext
>  ↑ここでBODYのテキストが表示されなくて困っています

おそらく、フレームセットが原因だと思います。


1) ieDoc.frames.length の値を確認してみてください。
   現在のコードのままですと、framesetが使われているページに対応できません。

   もし、フレーム組みされたページの内容を取得したいのであれば、
   For Eachなどを使って、framesコレクションを列挙し、個々のフレーム内の
   documentプロパティを個別に取得していくようにしてみてください。
  
   なお、フレーム内のページが、さらにframesetを使っている事もありますので、
   framesコレクションの呼び出しは、再帰的に行う必要があります。


2) IEでWebページ以外の文書を開いていた場合、documentプロパティから、
   IHTMLDocumentインターフェイス以外のオブジェクトが
   返される可能性があります。

   TypeOf演算子かTypeName関数を使って、ieDocのオブジェクトの型を
   事前に調べるようにする事をお奨めします。

# なお、documentオブジェクトのdocumentElementプロパティは、IE5からの実装です。
# IE4以下の環境で動作させる事はできませんので、その点は御留意下さい。


> Public Function SetIEObject()
戻り値のデータ型が書かれていないみたいですよ。


>    Dim sw As New SHDocVw.ShellWindows
既にご存知かも知れませんが、実行時バインド(late binding)で書く場合は、
  Dim sw As Object
  Set sw = CreateObject("Shell.Application").Windows()
で取得出来ますね。


>    bWindowShowFragg = False
>    For i = 0 To sw.Count - 1
変数 bWindowShowFragg、および i が宣言されていないようです。
(ところで、Fragg ではなく Flag なのでは無いでしょうか?)


>  '--実行ファイルのフルパスを調べてEXEファイル名でエクスプローラーとIEを判定
>  If Right(ie.FullName, 12) = "IEXPLORE.EXE" Then

FullNameプロパティが返す文字列による判定ではなく、
Documentプロパティが返すデータ型による判定をお奨めします。


現状のie.FullNameによる判定には、幾つかの問題点があるかと思います。

私の環境では、ie.FullNameが返す値として、以下のような物があります。
"C:\Program Files\Internet Explorer\iexplore.exe"
"C:\WINDOWS\Explorer.EXE"
"C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe"

右側12文字を取ってみると、"iexplore.exe"はあっても、"IEXPLORE.EXE"は無いのです。

これだけであれば、UCase関数で大文字化してから比較すれば対処できるのですが、
先述の(2)にも書きましたように、documentはHTML以外を返すことがありますので、
ie.FullNameだけで判定してしまうと、「IEのアドレスバーに"C:\"などと書いて開いた場合」や、
「エクスプローラのアドレスバーに、URLを指定して開いた場合」あるいは、
「IEでOffice文書を開いている場合」などに対応しきれないかと思います。

投稿時間:2003/04/01(Tue) 11:59
投稿者名:しんじ
Eメール:
URL :
タイトル:
Re^2: IEオブジェクトのDocumentオブジェクトについて
魔界の仮面弁士さん。
ありがとうございます。

> 1) ieDoc.frames.length の値を確認してみてください。
>    現在のコードのままですと、framesetが使われているページに対応できません。
>
>    もし、フレーム組みされたページの内容を取得したいのであれば、
>    For Eachなどを使って、framesコレクションを列挙し、個々のフレーム内の
>    documentプロパティを個別に取得していくようにしてみてください。
>  
>    なお、フレーム内のページが、さらにframesetを使っている事もありますので、
>    framesコレクションの呼び出しは、再帰的に行う必要があります。

上記の件了解いたしましたがどのような手法で再帰化して良いのかわかりません。
何処を判定させて再帰を終わらせるのか?
という部分がグレーになっています。
大変お手数ですがIEフレームの再帰化のサンプルコードなど教えていただけないでしょうか?
ご指摘いただいた通りframesetが使用されているページです。

> 2) IEでWebページ以外の文書を開いていた場合、documentプロパティから、
>    IHTMLDocumentインターフェイス以外のオブジェクトが
>    返される可能性があります。
>
>    TypeOf演算子かTypeName関数を使って、ieDocのオブジェクトの型を
>    事前に調べるようにする事をお奨めします。


そんな事全然考えつきませんでした。
本当に勉強になります。
この件は早速コードに加えたいと思います。

> # なお、documentオブジェクトのdocumentElementプロパティは、IE5からの実装です。
> # IE4以下の環境で動作させる事はできませんので、その点は御留意下さい。

この問題はソフトウェアの動作条件をIE5以上に設定いたします。
これはイントラネットのセキュリティ規定でIE5のSP2以上というのがあるので簡単にクリアできます。
また、大変勉強になりました!

> > Public Function SetIEObject()
> 戻り値のデータ型が書かれていないみたいですよ。

申し訳ないです。
本当はString型の文字列を返す予定だったのですが、まだそこまで行き着いておりませんでした(笑)

> >    Dim sw As New SHDocVw.ShellWindows
> 既にご存知かも知れませんが、実行時バインド(late binding)で書く場合は、
>   Dim sw As Object
>   Set sw = CreateObject("Shell.Application").Windows()
> で取得出来ますね。

こちらも凄い勉強になります!!!

> >    bWindowShowFragg = False
> >    For i = 0 To sw.Count - 1
> 変数 bWindowShowFragg、および i が宣言されていないようです。
> (ところで、Fragg ではなく Flag なのでは無いでしょうか?)

bWindowShowFraggに関しては不必要な変数でしたのでこちらはカットしました。
本来のコードはもっと関数が含まれていたので不必要な部分はカットしてUPしたのですが
こちらを消し忘れていました。。。。。涙
字間違えていますね。
かっこ悪い。。。。。
うぅ...


> >  '--実行ファイルのフルパスを調べてEXEファイル名でエクスプローラーとIEを判定
> >  If Right(ie.FullName, 12) = "IEXPLORE.EXE" Then
>
> FullNameプロパティが返す文字列による判定ではなく、
> Documentプロパティが返すデータ型による判定をお奨めします。


> 現状のie.FullNameによる判定には、幾つかの問題点があるかと思います。
>
> 私の環境では、ie.FullNameが返す値として、以下のような物があります。
>  "C:\Program Files\Internet Explorer\iexplore.exe"
>  "C:\WINDOWS\Explorer.EXE"
>  "C:\Program Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe"
>
> 右側12文字を取ってみると、"iexplore.exe"はあっても、"IEXPLORE.EXE"は無いのです。
>
> これだけであれば、UCase関数で大文字化してから比較すれば対処できるのですが、
> 先述の(2)にも書きましたように、documentはHTML以外を返すことがありますので、
> ie.FullNameだけで判定してしまうと、「IEのアドレスバーに"C:\"などと書いて開いた場合」や、
> 「エクスプローラのアドレスバーに、URLを指定して開いた場合」あるいは、
> 「IEでOffice文書を開いている場合」などに対応しきれないかと思います。

なるほどですね。
IEとExplorerの判定はいくつかの方法がありますが、一番手っ取り早い
FULLNAMEを使用していましたがそもそもの考え方が間違っていたのですね。
本件はDocumentプロパティが返すデータ型を検証すれば解決できそうです。(^_^)

この辺りの事に詳しい人も少なくWEBにもなかなか情報が無い為本当に感激しております。
本件に関しては8時間程はまってしまっており、情けない限りです。
勉強をしてまだまだ精進していかねば。。。。。。

投稿時間:2003/04/01(Tue) 12:56
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: IEオブジェクトのDocumentオブジェクトについて
> 上記の件了解いたしましたがどのような手法で再帰化して良いのかわかりません。
documentオブジェクト(またはwindowオブジェクト)のframesプロパティで、
framesコレクションを取得する事が出来ます。

これを列挙する事で、各windowオブジェクトを得る事ができますので、あとは
windowオブジェクトのdocumentプロパティで、各HTML文書を拾ってみてください。


> 何処を判定させて再帰を終わらせるのか?
『frames.length = 0なdocumentオブジェクトに到達した時』で良いかと。

投稿時間:2003/04/02(Wed) 00:23
投稿者名:しんじ
Eメール:
URL :
タイトル:
Re^4: IEオブジェクトのDocumentオブジェクトについて
本日一日中コードの作成を行ったのですが、やはりわかりません。
お恥ずかしい限りです。。。。。。

再帰化以外に関しては解決したと思われるのですがやはり再帰化でHTMLコードの全文が取得できません。
また、WIDNOWオブジェクト内のどのプロパティにHTMLが入っているのかがわかりませんでした。

そもそもIEオブジェクトに対しての理解が余りありません。
お手数おかけいたしますがサンプルコードで教えて頂けると非常にあり難いです。
大変申し訳ございませんがよろしくお願いいたします。

投稿時間:2003/04/02(Wed) 02:58
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^5: IEオブジェクトのDocumentオブジェクトについて
> 再帰化以外に関しては解決したと思われるのですがやはり再帰化でHTMLコードの全文が取得できません。

あれ? 元質問では、『テキスト全てを参照したい』とあったので、
HTMLのテキストノードの内容を調べたい、という意味かと思ったのですが…
今度は『HTMLコードの全文』を取得したいという事になっていますね。(^^;)


テキストノードの内容を取得したいという意味なら、最初に提示された「outerTextプロパティ」でOKですよ。
(内側のテキストを取得するなら、「innerTextプロパティ」ですね)

ちなみに、フレーム組みのページの時にタイトル部しか表示されなかったのは、HTMLが

    <html>
      <head>
        <title>フレームテスト</title>
      </head>
      <frameset cols="50%,*">
        <frame src="frame1.htm" name="frame1">
        <frameset rows="50%,*">
          <frame src="frame2.htm" name="frame2">
          <frame src="frame3.htm" name="frame3">
        </frameset>
      </frameset>
    </html>

のような構造だからです。テキストノードが title部しか無いわけですね。

# 実際には、noframesにテキストノードが含まれる事もありますが、
# innerTextプロパティは、noframes内部のテキストノードを無視します。


> また、WIDNOWオブジェクト内のどのプロパティにHTMLが入っているのかがわかりませんでした。
先に回答しましたように、『windowオブジェクトのdocumentプロパティ』で、
「(DHTMLでいうところの)documentオブジェクト」が取得されます。

documentオブジェクトさえ取得できれば、あとは、.all(0).innerText でテキストノードの内容を取得したり、
.documentElement.outerHTML で、現在解析されているHTMLの構造を文字列として取得したり、
.body.styleオブジェクトを書き換えて、HTML文書の色を変えたりする事ができますよ。



> そもそもIEオブジェクトに対しての理解が余りありません。
「InternetExplorerオブジェクト」に対する理解は、そこそこあるように見受けられました。
不足しているとすれば、それはおそらく Dynamic HTML(というか、MSHTML)に対する知識だと思います。

例えば、何度も話題に上がった「documentオブジェクト」ですが、
それが持つメソッドやプロパティやコレクションは、以下のようになります。(英語情報です)
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/obj_document.asp

英語版が読みづらいようであれば、日本語版を一緒に参照されると良いかも知れません。
(ただし日本語版は、IE4当時から更新されていないので、情報としてはかなり古いです)
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpisdk/dhtml/doc_object/doc_object.htm



> お手数おかけいたしますがサンプルコードで教えて頂けると非常にあり難いです。
再起処理の部分に付いていえば、単純にはこんな感じですかね。

Private Sub test(ByVal ieDoc As Object)
  If ieDoc Is Nothing Then
    Exit Sub
  End If
  If ieDoc.frames.length = 0 Then
      Debug.Print ieDoc.documentElement.outerHTML
  Else
      Dim n As Long
      For n = 0 To ieDoc.frames.length - 1
          test ieDoc.frames.item(n).document
      Next
  End If
End Sub

投稿時間:2003/04/02(Wed) 09:47
投稿者名:しんじ
Eメール:
URL :
タイトル:
【御礼】解決致しました!
魔界の仮面弁士さん

本当にありがとう御座います。
サンプルコードをカスタマイズしたところ正常に動作いたしました。
理由はよく分かりませんがieDoc.frames.item(n).documentがオブジェクトとなっていた為だと思われます。
その部分をieDoc.frames.item(n).document.documentElement.outerTextにしたところ正常に動作しました。
HTML分の取得に関してもieDoc.frames.item(n).document.documentElement.outerHTML
にて完全に取得できました。

こんなコード今回一人では絶対に解決できませんでした。
親切に対応して頂きまして本当にありがとう御座います。

> 再起処理の部分に付いていえば、単純にはこんな感じですかね。
>
> Private Sub test(ByVal ieDoc As Object)
>   If ieDoc Is Nothing Then
>     Exit Sub
>   End If
>   If ieDoc.frames.length = 0 Then
>       Debug.Print ieDoc.documentElement.outerHTML
>   Else
>       Dim n As Long
>       For n = 0 To ieDoc.frames.length - 1
>           test ieDoc.frames.item(n).document
>       Next
>   End If
> End Sub

教えて頂きましたサンプルコードは以下の用にカスタマイズいたしました。
これで完全に解決しました。

Private Function test(ByVal ie As Object) As String
    If ie Is Nothing Then
        Exit Function
    End If
    
    If ie.Document.frames.length = 0 Then
        ie.Doccument.documentElement.outertext
    Else
        Dim n As Long
        For n = 0 To ie.Document.frames.length - 1
            test = ie.Document.frames.Item(n).Document.documentElement.outertext
        '--取得文字列結合
            test = test + test
        Next
    End If
End Function

なんとお礼を言ってよいのか分からないくらい嬉しいです。
今後ともお力をお借りする事もあるかとは思いますが、極力は自分で調べてどうしても分からない場合は
投稿させて頂きたいと思います。
その際はどうぞよろしくお願い致します。
本当にありがとう御座いました。

投稿時間:2003/04/02(Wed) 11:39
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
再帰的に取得しなくて良いのですか?
> 理由はよく分かりませんがieDoc.frames.item(n).documentがオブジェクトとなっていた為だと思われます。
理由というか……。(^_^;)

documentプロパティはdocumentオブジェクトを返す仕様ですから、そもそも
documentプロパティがオブジェクト以外の物を返すことはありえなかったりします。


> HTML分の取得に関してもieDoc.frames.item(n).document.documentElement.outerHTML
> にて完全に取得できました。
そのコードでは、完全には取得出来ないかと思います。

documentElementプロパティは、文書構造のルートノード(通常はhtmlエレメント)を返しますので、
    http://www.momo-lab.net/
のように、最初にDOCTYPE宣言があった場合、
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html401/strict.dtd">
の部分が抜け落ちてしまい、HTMLタグ以下の内容しか取得されないはずです。

# ちなみに上記ページの場合は、ieDoc.childNodes(0).text でDOCTYPE宣言部、
# ieDoc.childNodes(1).outerHTML で htmlタグ以下の内容が取得されます。


> 教えて頂きましたサンプルコードは以下の用にカスタマイズいたしました。
カスタマイズした事によって、『再帰処理』ではなくなってしまいましたね。(^-^;)
これだと、一階層分のフレームセットにしか対応できなくなってしまいますよ。

No.3348にも書きましたように、Webページの中には、
  「フレーム内のページが、さらにframesetを使っている文書」
というのもあります。

例えば、『http://www.asahi-net.or.jp/~rg7f-tkhs/frame6.html』をサンプルに挙げれば、
この文書の左上の水色部のフレームの内容は、
    ieDoc.frames.item(0).document.frames.item(0).document.documentElement.outerText
のように、frames取得後、さらにframesを辿らないと取得出来ません。

これは、上記のWebページが、

===== 一番外側の [frame6.html] ======
  <frameset rows="*,*,*">
     <frame src="frame4.html" name="framea">
             :
  </frameset>

===== その内側の [frame4.html] ======
  <FRAMESET COLS="40%,60%">
     <FRAME SRC="framemenu.html" NAME="framemenu" SCROLLING="YES" MARGINWIDTH="20" MARGINHEIGHT="20">
             :
  </FRAMESET>

===== さらにその内側の [framemenu.html] ======
  <body bgcolor="#33FFFF">
    <h3>フレームのメニュー</h3><p>
             :
  </body>

======================================

のように、フレーム内でさらにフレームを使っているからです。

こうしたページの場合は、No.3368 のサンプルのように、フレーム内の
documentを再帰的に処理していかないと、全文書を列挙できないわけです。


# なお、インライン フレーム(iframeエレメント)の内容も
# 表示させたいのであれば、さらにもう一工夫が必要ですね。

投稿時間: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

投稿時間:2003/04/02(Wed) 13:41
投稿者名:しんじ
Eメール:
URL :
タイトル:
Re^2: 再帰的に取得しなくて良いのですか?
引数が抜けていたので訂正します。
気持ち悪いので。。。

Private Sub GetHTMLText(ByVal ie AS Object)
'-----------------------------------------------------------
'--
'--   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

投稿時間:2003/04/02(Wed) 13:57
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: 再帰的に取得しなくて良いのですか?
> 引数が抜けていたので訂正します。
あ、やっぱり。(^^;)

あと、注意するとしたら「エラーチェックを適切に行う事」ですかね。

InternetExplorerオブジェクトのdocumentプロパティと同様、
フレーム内のdocumentプロパティにしても、それがHTML文書を
返してくるという保証はありませんので。

例えば、
  http://www.ocv.ne.jp/~oratorio/windev/Excel/frameTest.html
のようなページがそれにあたります。

上記のページは、左右に分断されたフレームセットになっていますが、
その内容はHTML文書ではなく、左側がPDF文書、右側がExcel文書になっています。

投稿時間:2003/04/02(Wed) 13:42
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^2: 再帰的に取得しなくて良いのですか?
> 問題が有るようでしたら御指摘くださいませ。

「プロシージャ宣言」と「プロシージャの呼び出し部」で、
引数の数が一致していないような……。


> Private Sub GetHTMLText()
             :
>         For n = 0 To ie.frames.length - 1
>             GetHTMLText (ie.frames.Item(n).Document)
>         Next
             :
> End Sub

投稿時間:2003/04/02(Wed) 15:19
投稿者名:しんじ
Eメール:
URL :
タイトル:
本当にありがとう御座います。涙
魔界の仮面弁士さん

本当にご親切に対応頂きましてありがとう御座います。
記載頂きましたURL確認致しました。

エラートラップも難しいですね............汗
先ずはIHTMLや、フレームなどについて理解を深めないと駄目そうですね。

今まではRDB(ADO)でのプログラミングから一気にインターフェース屋さん
になってしまったもので本当に苦労しっぱなしです。

魔界の仮面弁士さんには、お忙しい時間を割いて親切に教えて下さって本当に感謝しています。
その甲斐有りまして2日前に比べれば飛躍的に吸収できたと思います。

今後は本件に関しての理解を深めていこうと思います。
(でもオブジェクトモデルが複雑過ぎるのでかなり勉強しないと駄目そうですが........)

今後とも本HPを利用させて頂くつもりですのでまたお力をお借りする事も有るかとは存じますが
その際はよろしくお願い致します。

本当にありがとう御座いました!!!