>リンクをクリックし開いたポップアップに、
>for each objTAG in objIE...系の処理をしたいのですが、
>objIEが親ページを参照しているためうまくいきません。
>objIEをアクティブページにするには、どのようにすればいいのでしょうか。
と質問をいただく。
私が作成したサンプルで、
似ている処理は、
http://ken3hitori.g.hatena.ne.jp/bbs/28/?from=1#1333152216
↑かなぁ?
'今度は、入出金メニュー(新しく開いたIE)を探す Dim objIE_I '入出金メニュー用 'シェルのオブジェクトを作成する Set objShell = CreateObject("Shell.Application") Set objIE_I = Nothing 'ウインドウの数だけまわすぞ For Each objWindow In objShell.Windows 'TypeNameでオブジェクト変数のタイプを表示する 'HTMLDocumentだったら If TypeName(objWindow.document) = "HTMLDocument" Then If InStr(objWindow.document.Title, "入出金メニュー") > 0 Then Set objIE_I = objWindow '見つけたウインドウを(IE)を代入 Exit For End IF End If Next Set objShell = Nothing '見つけたかチェック If objIE_I Is Nothing Then msgbox "エラー 入出金メニューが見つかりません" wscript.quit End If '-----------------
みたいな感じで、新しく開いたIEを探しています。
パターン的には、
CreateObject("Shell.Application")
で
.Title
や
.URL
で探していたりします。
http://www.ken3.org/vba/backno/vba156.html
など...
きれいにイベントでやる人は
http://www.ken3.org/vba/backno/vba163.html
を使ったりしますが
最近は手抜きで
http://d.hatena.ne.jp/ken3memo/20090604/1244142121
みたいに
'起動した IE が 必ず 絶対 一番後ろ と決め付けて(プログラマーに絶対は無いだろクソ三流)
Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
'↑配列が0からなのでカウント-1 一番後ろのWindowをobjIEに代入
で、手抜きでチェックしないで使っていたりします。(ぉぃぉぃ)
サンプルのうちどれかが問題解決の糸口となれば...と思いつつ失礼します。
三流プログラマー Ken3
PS.アクティブページの意味を 新規IEを決めつけてしまいましたが、
勘違い、質問の意味を取り違えていたらスミマセン...