IEのリンクを同じウィンドウで開くにはどうしたらよいか
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年9月13日(土)08時07分 From: IE質問者 | 返事 削除 変更 |
なるほど。 targetの指定ができたんですね! 教えてもらったやつでうまくいきました。 最近エクセルVBAでブラウザの操作を勉強中で色々な可能性があるので、 はまっています。 ありがとうございます! |
Message#2 2014年9月13日(土)00時36分 From: 管理人 | 返事 削除 変更 |
別のInternetExplorerが開くということはaタグにtargetが設定されているかと思います。 targetはリンク先の内容やフォームの結果をどのウィンドウ(フレーム)に表示するかを指定するものです。 別ウィンドウが表示されているということは、「_blank」が設定されているかと思います。 例)<a href="http://www.vba-ie.net/index.html" target="_blank">VBAのIE制御入門</a> 今回は、同じウィンドウで処理をしたいということですので、このtargetにVBAで「_self」を設定してしまえば、簡単に実現することができます。 リンククリック処理まではうまくいっているということですので、クリック前にtarget = "_self"を設定するとうまくいくかと思います。 【参考ページ】 リンククリック:http://www.vba-ie.net/element/subroutine-linkclick.html 【プログラム】 For Each objTag In objIE.document.getElementsByTagName("a") If InStr(objTag.outerHTML, "一意のキーワード") > 0 Then objTag.target = "_self" objTag.Click Call ieCheck(objIE) Exit For End If Next 'ページ完全読込処理サブルーチン Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop timeOut = Now + TimeSerial(0, 0, 10) Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop End Sub |
Message#1 2014年9月11日(木)21時17分 From: IE質問者 | 返事 削除 変更 |
こんばんわ。 現在あるサイトをVBAで操作しているのですが、あるリンクをクリックすると別画面で表示されてしまい、制御できません。 そのリンクをクリックしたとしても処理をしていたブラウザで表示させたいのですが、どうしたらいいですか? 一応、Clickメソッドでリンククリックまではうまくいっています。 よろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降