[三流君]
[VBAで楽しく]
[VBA IE 操作]
−−> No.164 IE .getElementsByTagNameでタグ指定 .Quitで閉じる
IE .getElementsByTagNameでタグ指定 .Quitで閉じる
楽天Booksのリンク取得が変更になったので、テストプログラムは動作しないです
参考程度に見てください。
※2005/10/20修正
発行内容
IE .getElementsByTagNameでタグ指定 .Quitで閉じる
どうも、三流プログラマーのKen3です。
今回は、IEでパラメータ入力後に、
新たに開かれた結果ウインドウから情報を抜き出し、
そのウインドウを閉じる、そんなことにチャレンジしてみます。
※起動したIEから広告コードを抜き取って用済みになった(失礼)IEを閉じる。
/*
* 1.やりたいこと 概要
*/
楽天ブックのリンク作成ページ
http://books.rakuten.co.jp/afvc/afinfo/page03.html
ここで、
ISBN番号 と 自分の広告コードのSIDとPIDを入力してボタンを押すと
ソースが表示される。
この広告コードを取得、そんなプログラムを作ってみたい。
ポイントになるのが、繰り返しになってしまいますが、
新規のイベントで自分で作ったオブジェクトを代入してます。
'新しいウインドウを開くイベントをチェックする
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
'新しいウインドウを自分の管理下に置きたいので、オブジェクトを代入してあげる
Set objNEW_IE = CreateObject("InternetExplorer.Application")
Set ppDisp = objNEW_IE '作ったオブジェクトを代入
objNEW_IE.Visible = True '念のため見えるようにする
End Sub |
Dim WithEvents objNEW_IE As InternetExplorer
とイベントを取れる宣言しているので、
テストで、URLとソースを表示してみました。
'新しく作成したウインドウが読み込まれたら、処理したいので、
Private Sub objNEW_IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
MsgBox "あたらしく開かれたURLは" & URL
MsgBox "HTMLソースは" & objNEW_IE.Document.all(0).innerhtml
End Sub |
と、オブジェクトを自分の管理下に置くことができました。
ここから、広告コードを抜き取って、ウインドウを閉じたいと思います。
/*
* 2.タグ名指定でオブジェクトをGetする .getElementsByTagName
*/
オブジェクトが操作可能となったので、広告コードを取り出してみたいと思います。
objNEW_IE.Document.all(0).innerhtml
からinstr関数で<TEXTAREA>のタグを探す方法もあるのですが、
今回はカッコつけて、
.getElementsByTagName("タグの名前")
を使用してみます。
TEXTAREAのタグなので、
.getElementsByTagName("TEXTAREA")
として、取り出してみます。
'新しく作成したウインドウが読み込まれたら、処理したいので、
Private Sub objNEW_IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'読み込み完了を判断する
If objNEW_IE.ReadyState = READYSTATE_COMPLETE Then '読み込み完了
'テキストをセットする
Me.txtKCODE.Value = _
objNEW_IE.Document.getElementsByTagName("TEXTAREA").Item(0).InnerTEXT
End If
End Sub |
と、こんな感じで、
.getElementsByTagName("TEXTAREA").Item(0).InnerTEXT
タグの名前がTEXTAREAでアイテム0番目の内部テキスト
を取得できました。
/*
* 3.新しく開かれたIEを閉じる .Quitする
*/
あとは、取得が終わったので、閉じてみます。
閉じるのは.QUITメソッドです。
'新しく作成したウインドウが読み込まれたら、処理したいので、
Private Sub objNEW_IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'読み込み完了を判断する
If objNEW_IE.ReadyState = READYSTATE_COMPLETE Then '読み込み完了
'テキストをセットする
Me.txtKCODE.Value = _
objNEW_IE.Document.getElementsByTagName("TEXTAREA").Item(0).InnerTEXT
'IEを閉じる
objNEW_IE.Quit
End If
End Sub |
ソース取得後、バイバイって感じです。
回線速度が速いと、開いてすぐ閉じてとなると思います。
私の場合は一瞬間があって、見えます。
/*
* 4.終わりの挨拶
*/
webフォームにパラメータをセットして処理実行、
実行時、新しい情報ウインドウが開かれる(新規IEが起動する)
そのウインドウから結果データを取得して、閉じる。
そんな流れのテストプログラムでした。
何か読者の心に残れば、うれしいです。
*私の独り言をうまく消化してくださいね。
在宅三流プログラマー Ken3でした。
フィードバック
VBA系の→[掲示板]←を覗く、質問を書き込む
評価・感想
ページフッター(リンクや広告など)
[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます
広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列
書籍の購入
Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??
コンピュータ書籍の発送がハヤイ専門店
コンピュータの本・専門店
|
※種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり
|
amazon.co.jpでキーワード別チェック
下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・