三流君 ken3のmemo置き場

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

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

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

リンク先を調べる Aタグをチェックする

次に、リンクのボタンを押したいので、
Aタグ、リンクのHTMLを探ります。

押したいのは 入出金メニュー なので、そこら辺りを探ります。

    'Aタグを集め、中身を確認する
    'Aのタグを集める .getElementsByTagName("A")を使用
    Set objA = objIE.Document.getElementsByTagName("A")

    'ループで頭から表示してみる
    For n = 0 To objA.Length - 1
        '※.InnerHTMLじゃなくて、.OuterHTMLでAの全体を見る
        Msgbox "n=" & n & vbCrLf & objA(n).OuterHTML
    Next

    Set objA = Nothing  'オブジェクト変数解放

.getElementsByTagName("A") で Aのタグを集めます
.Lengthで集めた数がわかるので、
For n = 0 To objA.Length - 1のループを作ります。
objA(n).OuterHTML で n番目のHTMLソースを取得できます。

あとは、見つけたらクリックじゃないけど、
見つけるのに、
InStr(objA(n).OuterHTML, "入出金メニュー") > 0
を使ったりして、見つけます。
そして、objA(n).Click でクリックします。

テスト結果→ http://www.youtube.com/watch?v=Yk347rMLvVc
www.youtube.com

作成したソースファイル

'複数立ち上がったIEから IPAT 投票メニューを見つける

    'オブジェクトを格納する変数
    Dim objShell, objWindow
    Dim objIE 

    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")

    Set objIE = Nothing    
    'ウインドウの数だけまわすぞ
    For Each objWindow In objShell.Windows
        'TypeNameでオブジェクト変数のタイプを表示する
        'HTMLDocumentだったら
        If TypeName(objWindow.document) = "HTMLDocument" Then
           If objWindow.document.URL = "https://www.ipat.jra.go.jp/pw_020_i.cgi" Then
               Set objIE = objWindow '見つけたウインドウを(IE)を代入
               Exit For   
           End IF
        End If
    Next
    Set objShell = Nothing

    '見つけたかチェック
    If objIE Is Nothing Then
        msgbox "エラー 投票メニューが見つかりません"
        wscript.quit
    End If   

'↑上で見つけたIPAT 投票メニューから 入出金メニュー を 押す

    'Aのタグを集める .getElementsByTagName("A")を使用
    Set objA = objIE.Document.getElementsByTagName("A")

    'ループで頭から表示してみる
    For n = 0 To objA.Length - 1
        '※.InnerHTMLじゃなくて、.OuterHTMLでAの全体を見る
        '入出金メニューのリンクを探す、ソースの文字を探す
        If InStr(objA(n).OuterHTML, "入出金メニュー") > 0 Then
            objA(n).Click  'クリックする
            Exit For  'ループを抜ける
        End If
    Next

    Set objA = Nothing  'オブジェクト変数解放


終わりの挨拶

.OuterHTMLから文字列を探す・・・芸が無い方法ですが使ってみてください。
何かの参考となれば・・・・
(まだ、先は長い感じ??)

Ken3 ホームページ 目次

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

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



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