ExelVBAで JRAのホームページの”レース結果”(ボタン?埋め込み?) 削除
Message#1 2014年12月7日(日)08時08分 From: 競馬マン |
ExelVBAで JRAのホームページの”レース結果”(ボタン?埋め込み? ) をclickしたいのですが。スクリプトは次の通りです 元はhttp://vba-code.net殿の無断コピペ改造です。 33行目をJRAのアドレス(元はyahooの) 42行目を、”ヤオフク”−−>”レース結果”にして 動かそうしたんですが飛んでくれません。 でFor Each NEXTを抜け出すまでの回数(XXXXXX)を カウントして objtag(XXXXXX - 1).Click '<−−これがダさい。 でなんとか動いているんですが indexでなく、文字列そのもので飛ばす方法を ご教授ください。 Option Explicit 'ヤフオクに移動する Sub GoToYahooAuction() Dim objIE As Object 'IE起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'Yahooに接続 objIE.navigate "http://www.jra.go.jp/" 'IEを待機 Call IEWait(objIE) '5秒停止 Call WaitFor(5) '「ヤフオク!」のリンクをクリック Call IELinkClick(objIE, "レース結果") 'IEを待機 Call IEWait(objIE) '5秒停止 Call WaitFor(5) 'IE終了 objIE.Quit Set objIE = Nothing End Sub 'リンクをクリックする関数 Function IELinkClick(ByRef objIE As Object, ByVal anchorText As String) Dim objLink As Object Dim objtag As Object Dim XXXXXX As Integer XXXXXX = 0 For Each objLink In objIE.document.getElementsByTagName("a") XXXXXX = XXXXXX + 1 If objLink.innerText = anchorText Then objIE.navigate objLink.href '<<ーー飛ばない Exit For End If Debug.Print objLink.innerText Next 'ここから Set objtag = objIE.document.getElementsByTagName("A") IEWait objIE objtag(XXXXXX - 1).Click '<−−これがダさい。 '迄がダさい。 End Function 'IEを待機する関数 Function IEWait(ByRef objIE As Object) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop End Function '指定した秒だけ停止する関数 Function WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Functi お礼が少なくて申し訳ありません(再質問がありますので、、、) JRAのホーム改変が激しくあまりindexで処理したくないものでして。 競馬の成績、最終オッズ収集用です。 ページよってはボタン類で有ったりなかったり、 例えば9頭未満だと”枠連”がなかったりで indexが変わったり、同時開催数だの、、、、 で、あまり数値を使いたくないのです。 WIN5対象だと以後indexが繰り下がるとか |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。