http://www.youtube.com/watch?v=qQ3nCRiz4lA
www.youtube.com
三流解説 VBA IE ブログにデータを登録する サンプルプログラム
http://ie.vba-ken3.jp/sample/004/
に、
新しいIEがきどうしたら、
'起動した IE が 必ず 絶対 一番後ろ と決め付けて(プログラマーに絶対は無いだろクソ三流)
Set newIE = objSHELL.Windows(objSHELL.Windows.Count - 1)
'↑配列が0からなのでカウント-1 一番後ろのWindowをobjIEに代入
で捕まえて、
日付設定で、次の月を選択したかったので、
次の月 ">" のリンクを押す、押してみました。
-
-
- ここから サンプルプログラム ----
-
'投稿時間を調整する。 公開日時を指定 で 起動する、新しいウインドウ(IE)を捕まえる。 '投稿の状態 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 '日にちのみ進ませる。チェックする。 Dim objA As Object 'ついでに日付のチェック。日付の変更。 Set objA = newIE.Document.all.tags("A") '新しいIEのAのタグを抜く、allから集める。 For n = 0 To objA.Length - 1 '抜いた数ループする。 If Val(objA(n).innerText) = ((Val(Range("D9")) * 2) Mod 27) + 1 Then '日を数値で比べる。 objA(n).Click '見つけたので、クリックする DoEvents Exit For End If Next n time10 = DateAdd("s", 1, Now) '動画用に2秒待ち While Now < time10 DoEvents Wend 'newIEの表示を待つ While newIE.ReadyState <> READYSTATE_COMPLETE Or newIE.Busy DoEvents Wend time10 = DateAdd("s", 2, Now) '動画用に2秒待ち While Now < time10 DoEvents Wend 'hourで時間 Minute(time)で分。 Dim dtmYOTEI As Date dtmYOTEI = DateAdd("n", 30 + (35 * Val(Range("b9"))), Now) '35分×に調整する。 newIE.Document.all("hour").Value = Hour(dtmYOTEI) newIE.Document.all("minute").Value = Minute(dtmYOTEI) 'データがセットできたので、日時を設定のボタンを押す '<input type="submit" value="日時を設定" Dim objINPUT As Object Set objINPUT = newIE.Document.all.tags("INPUT") '新しいIEのINPUTのタグを抜く、allから集める。 For n = 0 To objINPUT.Length - 1 '抜いた数ループする。 If objINPUT(n).Value = "日時を設定" Then '日時を設定 のボタンを Valueで判断する。 objINPUT(n).Click '見つけたので、クリックする DoEvents Exit For End If Next n time10 = DateAdd("s", 2, Now) '動画用に2秒待ち While Now < time10 DoEvents Wend
-
-
- ここまで。 サンプルプログラム ----
-
ソースコードは、 http://ken3-info.blog.ocn.ne.jp/objie/2009/06/ie_ocn_blog_ie_.html を見てください。
大元は、
三流解説 VBA IE ブログにデータを登録する サンプルプログラム
http://ie.vba-ken3.jp/sample/004/
で少し書いてます。続きは不定期ですが、↑を見てください。