[三流君] [VBAで楽しく] [VBA IE 操作]
−−> No.157 IE Element の 我流な探し方(AS Objectはキライ)

IE Element の 我流な探し方(AS Objectはキライ)

概要:

TypeNameを使い、
     'データをループする
     For Each objTAG In objIE.document.all
        Debug.Print objTAG.tagName & ":" & TypeName(objTAG)
        Cells(yline, "A") = objTAG.tagName
        Cells(yline, "B") = TypeName(objTAG)
        Cells(yline, "C") = objTAG.innerHTML
        yline = yline + 1
     Next
ループさせて、オブジェクトのタイプを探ってみました。
B:HTMLPhraseElement
BR:HTMLBRElement
A:HTMLAnchorElement
とかいろいろとあるみたいです。

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

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

メルマガ発行内容

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

<IE Element の 我流な探し方(AS Objectはキライ)>

どうも、三流プログラマーのKen3です。 今回は、 IE Element の探し方 そんなお話です。 ※有料版で、2004/01/24発行した内容です。  今回の質問がタイムリーだったので、  サービス And 宣伝兼ねて、発行します。 http://www.ken3.org/pmagmag/ が有料メルマガのHPですが、  この内容で月400円は高いので、登録しないでね・・・ http://www.ken3.org/p/3/office-052.lzh に、 今回使用した、テストプログラム(Excel2000版)が圧縮されてます。 動かしてテストしてみてください。 関連項目、 VBAでInternetExplorer.Applicationを操作する(IE操作) http://www.ken3.org/cgi-bin/group/vba_ie.asp もヨロシクね。

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

有料版の読者よりメールで、(勝手に要約すると) AS Objectはキライなので、参照設定をして型指定をしたい そんな時、AS XXXXは?どうやったら調べるのですか? と質問をもらった。 う〜ん、AS OBJECTって私は好きなんだけどななぁ、チャントした人が多いのですね。 調べるとしたら、どうするのだろう? それに続き、下記の書き込みをHPから質問送信でいただく ---------- >質問なのですが、objIE.Document.formsの下にItem1とItem2があり、 >Item2の下のItem4のボタンをサブミットしたいのですが方法が分かりません。 >objIE.Document.allを見るとItem256までしか表示されておらず、以下が省略されて >おり、目的のボタンが表示されません。 >Vb_Scriptなどで使用するelement()も試してみましたが駄目でした。 ---------- こんな感じで、IE系の操作の質問が多いです。 ※その他、未処理の質問もかなり多いんだけど  (有料版読者、その次に答えられるのから解答しているので回答順がめちゃくちゃ) う〜ん、、、どうするんだろう?

/* * 2.TypeName(objTAG)で表示させてみる */

えっと、まず、私は(読者は)、IEのオブジェクトタイプがわかりません。 だって、今から調べたいんだから(笑) なので、調査プログラムは、何でもOKのObject型に入れます。 いつもの様に、 Dim objIE As Object 'IEオブジェクト参照用 Dim objTAG As Object 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) で、IEのオブジェクトを作成します。 次に、URLを表示させ.allでループさせます。 '文字列で指定したURLに飛ぶ objIE.Navigate "http://www.ken3.org/" '表示終了まで待つ Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop 'データをループする For Each objTAG In objIE.document.all Debug.Print objTAG.tagName Next これだと、タグの名前はでるけど、オブジェクトの型がわかりません。 それを表示させたいので、TypeName関数を使ってみました。 'データをループする For Each objTAG In objIE.document.all Debug.Print objTAG.tagName & ":" & TypeName(objTAG) Cells(yline, "A") = objTAG.tagName Cells(yline, "B") = TypeName(objTAG) Cells(yline, "C") = objTAG.innerHTML yline = yline + 1 Next この探りのプログラムを起動すると、 セルにタグの名前とオブジェクトの型が表示されます。 B:HTMLPhraseElement BR:HTMLBRElement A:HTMLAnchorElement ・   ・ ・ A:HTMLAnchorElement A:HTMLAnchorElement HR:HTMLHRElement SCRIPT:HTMLScriptElement BR:HTMLBRElement IMG:HTMLImg HR:HTMLHRElement これで、オブジェクトの型がダイタイわかるので、 あとはマイクロソフトのHPやGoogleで探ってみます。 試しにGoogleでHTMLScriptElementを探ると、 http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=HTMLScriptElement&lr=lang_ja こんな感じで進めていくと、 型指定をしたコーディングやオブジェクトの探り方が楽だと思います。 ここから、プロパティやメソッド、サンプルプログラムを探っていくのが、 私がIE系でやっているやり方です。 ※IE操作系のまとまった書籍や参考本、まだ見かけていないので。  (もしかしたら出版されているかも知れませんが)

/* * 3.終わりの挨拶 */

今回は、解説はあまりなく、私流/我流/三流のオブジェクトの探り方でした。 TypeNameで型を表示させ探ったり、型宣言する、そんな話でした。 好みもあるけど、使ってみてください。 ※なんて言ってても、私は、ずっとAs Objectを使い続けたりして、、、 IEでHTMLの解析時やドキュメントに対してアクセスする時の参考となれば。 http://www.ken3.org/p/3/office-052.lzh に、 今回使用した、テストプログラム(Excel2000版)が圧縮されてます。 動かしてテストしてみてください。 プログラム作りは簡単で面白いなぁと感じるような 解説/メールマガジンを書きたいと思ってますが、 なかなか、うまくいってないです。(有料、無料とも上手くいってない・・・) 何か読者の心に残れば、うれしいです。 *私の独り言をうまく消化してくださいね。 いつも失敗?の負け組の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へ]