投稿日 | : 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