Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
ソースはここ → http://ken3-info.blog.ocn.ne.jp/objie/2009/05/ie_set_newie_ob.html
VBA IEから 記事をブログに書き込む は → http://ie.vba-ken3.jp/sample/004/
全体のIE操作は → http://www.ken3.org/cgi-bin/group/vba_ie.asp を見てください。
プログの記事をVBA IEから登録で、
公開日時を指定 で 起動する、新しいウインドウ(IE)を捕まえる
そんな処理にチャレンジしてます。
-
-
-
-
-
- ソースを抜き出す。 ------ 参照: http://ie.vba-ken3.jp/sample/004/
-
-
-
-
'投稿時間を調整する。 公開日時を指定 で 起動する、新しいウインドウ(IE)を捕まえる。
Dim dtmYOTEI As Date
dtmYOTEI = DateAdd("h", Val(Range("b9")), Now()) '時刻を計算する。
'hourで時間 Minute(time)で分。
'投稿の状態 status
Set TAGSelect = objIE.Document.all("status")
'SELECTタグの下にはOPTIONタグがあるので、
For i = 0 To TAGSelect.Options.Length - 1
Set TAGOption = TAGSelect.Options(i) 'FORM SELECTのアイテムを代入
If TAGOption.innerText = "公開日時を指定" Then '内側のテキストで比較する。
TAGOption.Selected = True '選択状態にする。
'TAGOption.Selected = True 'だけだと、Javascriptのイベントが起動しない?
'.fireEvent ("イベント名") で イベントを起動、自分で着火、発砲かぁ
TAGSelect.FireEvent ("onchange") 'SELECTタグのonchangeイベントを発行
Exit For '起動したので抜ける。
End If
Next i
'次は、新しいウインドウが起動するのを待たなきゃね。
Debug.Print "新しいウインドウ待ち" & Now
time10 = DateAdd("s", 6, Now) '手抜きで、時間待ちする。6秒待ち
While Now < time10
DoEvents
Wend
'開かれたIEを探す。
Dim objSHELL As Object 'Shell.Application
Dim objWINDOW As Object '.Windows
Dim newIE As InternetExplorer
'シェルのオブジェクトを作成する
Set objSHELL = CreateObject("Shell.Application")
'起動した IE が 必ず 絶対 一番後ろ と決め付けて(プログラマーに絶対は無いだろクソ三流)
Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
'↑配列が0からなのでカウント-1 一番後ろのWindowをobjIEに代入
Set objSHELL = Nothing 'この変数は 三流君みたいにもう用済みなので、バイバイ
'その後、いつものステータスを見ますか。
'newIEの表示を待つ
While newIE.ReadyState <> READYSTATE_COMPLETE Or newIE.Busy
DoEvents
Wend
Debug.Print newIE.Document.body.innerHTML
newIE.Document.all("hour").Value = 12
newIE.Document.all("minute").Value = 0
Stop 'STOPでとめる。
-
-
-
-
-
-
-
- -
-
-
-
-
-
-