概要:
データをフォームに |
リンク 分類:
[Document(文章)からデータを取得]
/ [Form入力処理]
/ [Linkリンク情報]
/ [Image画像情報]
/ [Frameフレーム処理]
サンプル:
[IEを使ったVBAのサンプル]
/ [小さなVBAでIE操作のコード]
やっと、下記、メルマガで発行した内容です。何かの参考となれば幸いです。
過去のメルマガ[IE操作系の記事一覧]もヨロシクです。
どうも、三流プログラマーのKen3です。 今回は、 IE操作で、プログラム側からクリック処理を行ってみます。 何かの参考となれば、幸いです。/* * 1.今回のキッカケ */
隣のメルマガ、ASP系で、ログイン処理を作りました。 No.68 DBでユーザー管理、ログイン処理(復習で作成) http://www.ken3.org/backno/backno_asp14.html#68 自動でログインできたらいいなぁ・・と思い、探ってみました。 And だいぶ前に読者から下記のヒントもらっていたので(感謝) In message "リンク クリック", しょうもさん wrote... >[ VBAで楽しくプログラミング No.071 ] 2003/05/06 火曜日 より > >> 読者からの要望は、広告自動クリックソフトだったけど > >その名の通り、Clickメソッドが使えますよ。 >今回も、IHTMLElementオブジェクトを操っています。 >「Microsoft HTML Object Library」参照設定です。 > >'----------- > Dim objElement As IHTMLElement > Dim strTempText As String > > For Each objElement In objIE.Document.all.tags(tagName:="a") > strTempText = objElement.getAttribute _ > (strAttributeName:="href") > Debug.Print strTempText > If InStr(strTempText, "top10") Then > objElement.Click > Exit For > End If > Next ------------ そんな感じの三流君書いてみようポイントが貯まって(←何それ?) 今回の発行となりました。 ※今回の自動ログイン処理、まだまだですが、 応用すれば、1日一回の人気投票システムなどにも応用可能かなぁ。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba097.lzh にtest097-Book.xlsが保存されています。/* * 2.IEのオブジェクトを作成、操作する */
インターネットエクスプローラー(IE)を起動するには、
Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) End Sub |
Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "http://www.ken3.org/cgi-bin/test/test068.html" '表示終了まで待つ Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.userid.Value = "Ken3" 'ユーザー名 objIE.document.all.pass.Value = "aaa" 'パスワード End Sub |
Sub ie_test_click() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "http://www.ken3.org/cgi-bin/test/test068.html" '表示終了まで待つ Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.userid.Value = "Ken3" 'ユーザー名 objIE.document.all.pass.Value = "aaa" 'パスワード 'データせっとできたので、 'ボタンを押してみる objIE.document.all.btn01.Click 'クリックメソッドを実行 End Sub |
>webに掲載されていましたwebの自動ログインのソースをそのままコピーして
>実行してみました。そしうしましたところ、IEが立ち上がり、
>"けんぞうのめんてこな世界"が表示され、
>IDおよびパスワードの蘭にデータが自動で入力されず、
>下記のメッセージが現れました。何が原因でしょうか?
>
>オートメーションエラーです。エラーを特定出来ません。
ie.Document.documentElement.innerHTMLがエラーになります。
>エクセルのバージョンは2000です。バージョンが古いのでしょうか?
Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "http://www.ken3.org/cgi-bin/test/test068.html" '表示終了まで待つ ※表示待ちができていない。 Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.userid.Value = "Ken3" 'ユーザー名 objIE.document.all.pass.Value = "aaa" 'パスワード End Subここ
'表示終了まで待つ ※表示待ちができていない。 Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loopで、表示待ちができていないので、 .ReadyState プロパティ http://ken3-info.blog.ocn.ne.jp/objie/2009/06/readystate_1393.html を追加で見る(条件に入れる)といいみたいです。
While objIE.ReadyState <> 4 'READYSTATE_COMPLETE = 4 DoEvents 'Doeventsは重いので嫌いな人居るけど Wendみたいな感じで、追加してみます(Orで条件を見てみます)
Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "http://www.ken3.org/cgi-bin/test/test068.html" '表示終了まで待つ ※表示待ち .Busyか.ReadyStateが4以外 Do While objIE.Busy = True Or objIE.ReadyState <> 4 'READYSTATE_COMPLETE = 4 '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.userid.Value = "Ken3" 'ユーザー名 objIE.document.all.pass.Value = "aaa" 'パスワード End Sub変なサンプルでご迷惑をおかけしてスミマセン。
三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]
大分類:[Document.Forms(入力処理)]
/ [Document.Links(リンク情報)]
/ [Document.Images(画像情報)]
/ [Document.Frames(フレーム処理)] | |
F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。 項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。 項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。 Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など Blog:[三流君の作業日記]/
[objIEを使用したサンプルコードを見る]/
広告-[通販人気商品の足跡] |
三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。