[三流君] [VBAで楽しく] [VBA IE 操作]
−−> No.070 InternetExplorer.application .document.all(0).innerHTML

InternetExplorer.application .document.all(0).innerHTML

概要: InternetExplorer.application .document.all(0).innerHTML で 読み込んだページのソースを表示

IEのオブジェクトの中身の探り方を少し書きました。

※メルマガ記事ではオブジェクトの参照設定をしていませんができれば、下記を参考に参照設定してください。
[Microsoft Internet Controls,Microsoft HTML Object Library を参照設定する](このほうが開発時、操作時に楽)
また、VistaとIE7の場合は、 [IE7 操作 Vistaで失敗]も参考にしてください。

リンク 分類: [Document(文章)からデータを取得] / [Form入力処理] / [Linkリンク情報] / [Image画像情報] / [Frameフレーム処理] サンプル: [IEを使ったVBAのサンプル] / [小さなVBAでIE操作のコード]

メルマガ発行内容

やっと、下記、メルマガで発行した内容です。何かの参考となれば幸いです。
過去のメルマガ[IE操作系の記事一覧]もヨロシクです。

<InternetExplorer.application .document.all(0).innerHTML>

こんにちは、三流プログラマーKen3です。

今回は、
掲示板に質問があった、
彼女のすべてをのぞきたい、全てを取得したい。
じゃなくって、
IEでHTMLソースすべてを取得したい
です。

溜まっているオヤジギャグは置いといて、はじめますか?
(何が溜まっているって?駄目だよ変な想像したら・・・
  想像したのがたぶんあたりだけど、と回答を書かないのがKen3流の文章)

/* * 1.今回のキッカケ */

掲示板に来た質問です。※何か質問あったら遠慮なく、回答遅いけど。 --- >投稿時間:2003/05/02(Fri) 19:13 >投稿者名:nori >タイトル:はじめまして > >はじめまして。 >早速ですが、vba解説のNo.50 IE起動に関する質問があります。 > >Dim objIE As ObjectobjIE.Navigate "http://..." >Dim strHTML As String >strHTML = objIE.document.body.innerHTML > >でhtmlソースを取り出す事は出来ましたが、<body>内しか取り出せません。 >objIE.document.title >で<title>内も取り出せることは分かりましたが、<head>内すべてを取り出す事 >は出来るのでしょうか? >htmlにあまり詳しくないもので、解決しません。そもそも、<html>内は取り出 >せなくて当たり前なのでしょうか。愚問かもしれませんが、お返事よろしくお >願いします。 --- さて、やりたいことを整理して、 と思ったら、もう整理されてますね。 ・<head>内のソースを取得したい ・htmlの全てのソースを取得したいかぁ。

/* * 2.IEオブジェクトの中身を探れ(手ごわい彼女の心の中?) */

[No.50 IE起動 CreateObject("InternetExplorer.application")] ( http://www.ken3.org/vba/backno/vba050.html を参照) では、IEの起動方法を書きました。 [No.52 InternetExplorer.application .document.body.innerText] ( http://www.ken3.org/vba/backno/vba052.html を参照) では、 彼女(オブジェクト)の中身を探る方法を少し書きました。 それにしても、階層が深いです。 テーブル系のオブジェクトを探すが、なかなか見つからない。 (女の子じゃなくって、IEの心の中は複雑なのね、、、) 女心を探るのは下手だけど、オブジェクトの中身見るのは少しできるよね? なんて、馬鹿なこと言ってないで、ブレークポイントをはって、止めます。 いやらしい目で頭から探っていくと(ほんとは真剣な目ですよ) objIE.document.の下に、 .allなんてそれらしいのあるじゃないですか。 読者の人に見せたくないニャっとした顔で、 ? objIE.document.all(0).innerHTML とやってみると、ヘッダから情報が入ってました。 これを使えばなんとかできそうです。 下記Ken3がいやらしい目で見てたIEのオブジェクト

/* * 3..document.all(0).innerHTMLにいつも入っているのか?疑問だけど */

.document.all(0).innerHTML と 0番目にいつも入っているのか?疑問だけど、 下記のようにテストしてOKでした。
Sub ie_get_html()

    Dim objIE    As Object  'IEオブジェクト参照用

    'インターネットエクスプローラーのオブジェクトを作る
    Set objIE = CreateObject("InternetExplorer.application")
    objIE.Visible = True '見えるようにする(お約束)

    'ランキングのページに飛ぶ
    objIE.Navigate "http://www.ken3.org/cgi-bin/lime/limemgr.cgi"

    '表示されるまで待つ、10秒後にエラーを判断する
    Dim time10 As Date  '時刻格納用
    time10 = DateAdd("s", 10, Now())  '現在から10秒後を計算
    Do While objIE.Busy = True   'ビジー、読み込み中の間
        DoEvents
        If time10 < Now() Then   '10秒経過したか?
            MsgBox "タイムアウトです"
            Exit Sub
        End If
    Loop

    'HTMLソースを取出す
    Dim strHTML As String
    strHTML = objIE.document.all(0).innerHTML  '変数に代入
    MsgBox strHTML       'テスト表示
    Debug.Print strHTML  'イミディエイトにも表示

End Sub
彼女(IEオブジェクト)の心の中は、複雑そうなので、 引き続き、いやらしい目じゃなくって真剣な目で(オイオイ) 調べてみたいと思います。

/* * 4.おわりの挨拶 */

今回のポイントは、 Ken3はエロオヤジだった じっゃなくって IEのオブジェクトの中身の探り方でした。 No.52 InternetExplorer.application .document.body.innerText http://www.ken3.org/vba/backno/vba052.html にブレークポイント貼って、ウォッチで表示する画像があるので、 こっちを見ると美人をウォッチする方法がよくわかります(たぶん) 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。 ※今日はふざけすぎました、解除しないでね。

ページフッター リンクや広告、質問送信など

三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。

[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]

大分類:[Document.Forms(入力処理)] / [Document.Links(リンク情報)] / [Document.Images(画像情報)] / [Document.Frames(フレーム処理)]
サンプル・例題:[過去のメルマガ記事一覧] / [少し大きなIE操作サンプル] / [小さなコードでIE操作の動作確認]

F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。
なれると当たり前に操作している方法が↓かなぁ。
[F1ヘルプ マクロ記録ほか]・・・基本のF1を押してヘルプを見る方法など
[実行時エラー、デバッグモード]・・・デバッグの流れを簡単に(ハマった時はツライけど)
[イミディエイト ウインドウ と Debug.Print]・・・プログラム作成時に便利なイミディエイト ウインドウ
[VBA ウォッチ式とSTOPを使ってみた]・・・STOPで止め、ウォッチ式でオブジェクトの中身を確認する方法など
[参照設定のお話]・・・設定すると便利な(設定しないと使えない)、参照設定のお話

項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。
[プログラムは心? spirit]・・・プログラマー 心・気質・魂
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話

項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。
[VBAでIE ウェブブラウザーを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[MSアクセス から エクセル を呼ぶ Excel.Application]・・・AccessからExcelを操作したりデータの書き出しなどです
[アウトルック メールの操作 Outlook.Application]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[エクセル ユーザーフォームを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[エクセルからアクセスを操作する]・・・ExcelからAccessのマクロを起動してみました、
[エクセル関係 関数、その他]・・・その他Excel関係です

Access関係:
[アクセス ユーザーフォーム/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[アクセス レポート操作]・・・レポートを操作してみました
[アクセス クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[テキストファイルの操作(Open,Close,Print,Input)]・・・普通のテキストファイルを使ったサンプルです

Blog:[三流君の作業日記]/ [objIEを使用したサンプルコードを見る]/ 広告-[通販人気商品の足跡]

質問や要望など メッセージを送る(三流君に連絡する)

三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。

感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。

あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい



(感想や質問・要望 メッセージはHPで記事に載せることがあります。)

急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。



[トップページへ 戻る] / [VBA TOP] / [WebBrowser IEの操作 TOPへ]