三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

6/5 VBA IE操作 新しいウインドウ(IE)起動後 次の月>を押す 三流サンプル

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/
で少し書いてます。続きは不定期ですが、↑を見てください。

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)