まぁ初回ってことで、
・URL読み込み後、リンクを全てセルに書き出す。
・次へのリンクを押す。(今回は押さないで、次のページのURLを保存して移動だったけど。)
そんな処理に挑戦してみます。
まぁ、いつものようにドタバタしてます。
仕様書を書かないで、口答で指示を出されることってよくあったりしますよね。
悪い見本だけど、設計書書かないで、こんな感じで作ってと依頼を出してみます。。。。
動画で説明(手抜き)→:http://www.youtube.com/watch?v=-Qe9SN_no88
仕様書・設計書を書けよ、、、って読者の声が聞こえてきたところを強引に続けます。(泥縄式で作成開始。)
※今回のサンプルファイル:[VBA_IE_LINK.zip]←サンプルのxlsが入ってます。。
まず、テストで 私の動画ページ(youtube) から リンク情報を取り出します。
セルのB3 に
[http://www.youtube.com/profile?user=ken3video&view=videos]
と動画一覧(youtube)のURLをセットします。
.Navigate "URL文字列" で URL表示後、
いつものように、読み込み完了を
.ReadyState が READYSTATE_COMPLETE (4の完了以外)
Or .Busy = True
で、判断します。
次は、リンク情報の取出しです。
Document.Links から リンクの情報を取り出します。
Document.Links.Length で リンクの数がわかるので、
0から始まるループの終わりを Document.Links.Length - 1 で求めています。
次に中身ですが、単純なリンクを書くと、A タグのアンカーテキストとURLです。
HTMLのソースが、
[<a href="http://www.ken3.org/">Ken3 三流君Top</a>]
だったら、
.InnerTEXT で Ken3 三流君Top アンカーテキストを取り出せます。
.href で 、リンク先 http://www.ken3.org/ を取り出せます。
まぁ、ソースと実行結果を見てもらったほうがハヤイかなぁ。
下記、ソースと実行結果です。
'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'Microsoft HTML Object Library の 2つを忘れずに
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。
|
テストの動作結果:http://www.youtube.com/watch?v=XxjPsFHTRC0
※ソースコードと実行結果を合わせてみてくださいね。
単体が(1ページが)できたので、次は連続処理に挑戦してみます。
ポイントは、次へ の リンク先を保存しながら ループを回し、
・ページの表示
・表示待ち
・リンクの取り出し と 次への保存
を繰り返す、そんな感じです。
While strNEXT <> "" '次のURLが入っている間まわる
のループを作り、
objIE.Navigate strNEXT 'アドレスを渡し表示する
でページを表示してから、
While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy
DoEvents
Wend
読み込み完了となるまで、ループでステータスの変化を待ちます。(READYSTATE_COMPLETE=4になるまで)
あとは、表示されたページに対しての処理です。
忘れずに、リンク取り出しのループの外で、
strNEXT = "" '次のURLを初期化
してから、Document.Links(i)のループを作ります。
For i = 0 To objIE.Document.Links.Length - 1
Cells(nYLINE, "A") = "'" & objIE.Document.Links(i).innerText 'テキスト
Cells(nYLINE, "B") = objIE.Document.Links(i).href 'URL
と、i番目のデータを書き込んだら、下記で 次への文字チェックと URLの保管を行います。
'次へか判断する
If Cells(nYLINE, "A") = "次へ" Then 'テキストが 次へ
strNEXT = Cells(nYLINE, "B") 'URL(次へ)を代入
End If
nYLINE = nYLINE + 1 'セット位置を+1する
Next i
↑これで、単体ページの処理が終わりました。
次へがあったら、 strNEXT に URLが保管されているので、
一番外側のループをまわり、次のページが表示され 繰り返す、そんな感じです。
ループの作り方、処理の方法は好みがあるので、いろいろと試したりしてください。
※連続処理/次へ処理(次ページ処理) コードを書くときの参考・叩き台となれば、幸いです。
'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'Microsoft HTML Object Library の 2つを忘れずに
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。
|
テストの動作結果:http://www.youtube.com/watch?v=LL7KzeddrLk
※ソースコードと実行結果を合わせてみてくださいね。
今回は、単純に次へのリンクを保存し、連続処理で使用しました。
次へを押す とか 言っておいて、押してなかったり(笑)
今回のサンプルファイル:[VBA_IE_LINK.zip]←サンプルのxlsが入ってます。。
最新情報と作成履歴は→[更新履歴と最新を表示]
三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。
感想や質問・要望・苦情など 三流君へメッセージを送る。 時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。 |
急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。
[IE操作 三流解説のトップページへ 戻る]
/ [IE操作の三流サンプル一覧へ 戻る] [三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top] | |
F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。 項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。 項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。 Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など Blog:[三流君の作業日記]/
[objIEを使用したサンプルコードを見る]/
広告-[通販人気商品の足跡] |