Private Sub CommandButton1_Click()
Debug.Print Me.WebBrowser1.Document.URL
Debug.Print Me.WebBrowser1.Document.Title
'テーブル取り出しのテスト
Dim n As Integer
'表示完了後、THタグ 馬名を探す
Dim tagTH As Object 'THのタグを保存する
Dim nTHNo As Integer '見つけたオブジェクトの場所
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
nTHNo = -1 'エラーの-1で初期化する
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "馬名" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nTHNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "馬名の表が見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
'テーブルが見つかったので、コピーする。
Dim r As Object
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー
'テスト用に新規のブックを追加する
Workbooks.Add '新規ブックを追加
'形式を選択して貼り付け HTML貼り付けのテスト
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "HTML形式で貼り付け" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML"
'形式を選択して貼り付け Unicode テキスト貼り付けのテスト
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "FormatUnicode テキスト" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Unicode テキスト"
'形式を選択して貼り付け テキスト貼り付けのテスト
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "Formatテキスト" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="テキスト"
End Sub
まぁ、ポイントは、
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
で、いつものようにTHを取り出して、
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "馬名" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
↑、テキスト の 馬名を探します。
探し終わったら、そのテーブルを見つけるために、
.parentElement を 使って、親のテーブルまでたどり着きます。
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
テーブルを見つけたら、
'テーブルが見つかったので、コピーする。
Dim r As Object
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー↑、テーブル全体をコピーします。
コピーしたら、貼り付けって感じで、あとは、
'形式を選択して貼り付け HTML貼り付けのテスト
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "HTML形式で貼り付け" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML"
こんな感じで貼り付けました。
さてと、あとは、1レースから最終レースまで繰り返して 貼り付けますか。
03/29 THタグから 馬名 を探し、そのテーブルをコピー貼り付けする :
http://www.youtube.com/watch?v=uZV6V27LVak
Private Sub CommandButton1_Click()
Debug.Print Me.WebBrowser1.Document.URL
Debug.Print Me.WebBrowser1.Document.Title
'テーブル取り出しのテスト
Dim n As Integer
'表示完了後、THタグ 馬名を探す
Dim tagTH As Object 'THのタグを保存する
Dim nTHNo As Integer '見つけたオブジェクトの場所
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
nTHNo = -1 'エラーの-1で初期化する
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "馬名" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nTHNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "馬名の表が見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
'テーブルが見つかったので、コピーする。
Dim r As Object
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー
Set r = Nothing 'Rは用済み
'テスト用に新規のブックを追加する
Workbooks.Add '新規ブックを追加
'形式を選択して貼り付け HTML貼り付けのテスト
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "HTML形式で貼り付け" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML"
'単勝(人気順)
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
nTHNo = -1 'エラーの-1で初期化する
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "単勝(人気順)" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nTHNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "単勝(人気順)の表が見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
'テーブルが見つかったので、コピーする。
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー
Set r = Nothing 'Rは用済み
'形式を選択して貼り付け HTML貼り付けのテスト
Range("I1").Select
ActiveSheet.PasteSpecial Format:="HTML"
End Sub
Private Sub CommandButton1_Click()
Debug.Print Me.WebBrowser1.Document.URL
Debug.Print Me.WebBrowser1.Document.Title
Dim n As Integer
Dim strRACE As String
strRACE = InputBox("どのレース?に切り替える?", "TEST", "2R")
'OPTION タグからレースを 選択
Dim tagOPTION As Object 'タグ保存用
Dim nOPTION As Integer '見つけたOPTIONタグを保存する変数。
Set tagOPTION = Me.WebBrowser1.Document.all.tags("OPTION") 'OPTIONのタグを抜き出す
nOPTION = -1 'エラーの-1で初期化する
For n = 0 To tagOPTION.Length - 1 'OPTIONのタグを頭から探る
If tagOPTION(n).InnerText = strRACE Then 'レース番号を探す、OPTIONのテキストで比較する
nOPTION = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nOPTION = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox strRACE & "レースが見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'OPTIONをセレクト、選択する。
tagOPTION(nOPTION).Selected = True '見つけたオブション(レース)を選択状態にする
'上の階層、Formを探して、.Submitする。
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagOPTION(nOPTION).parentElement '見つけたOPTIONの親を代入
While objOYA_TAG.tagname <> "FORM" 'タグの名前がFORMになるまで(FORM以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
objOYA_TAG.Submit '上へ行き、見つけたフォームを.Submit 送信処理
'Stop 'とめる
End Sub
↑ポイントは
Set tagOPTION = Me.WebBrowser1.Document.all.tags("OPTION")
で、OPTIONのタグを抜き出し
For n = 0 To tagOPTION.Length - 1 'OPTIONのタグを頭から探る
If tagOPTION(n).InnerText = strRACE Then
でレース番号を探します(OPTIONのテキストで比較する)
無事見つけたら、
tagOPTION(nOPTION).Selected = True
で、オブションを選択状態にする
あとは、親のタグがFORMになるまで上に行き、
.Submitで送信、無事レースが切り替わります。
こんな感じです。
04/05 OPTIONタグから レースを探し .Selected = True : http://www.youtube.com/watch?v=TXWJOITWIe8
1R〜12Rまで 連続で 単勝オッズを取り込む
やっと、単体テスト?も終わり、結合してみたいと思います。
Option Explicit
Private Sub bGET_TAN_Click()
'情報メニューを起動する(クリックする)
Dim n As Integer 'ループのカウンター
Dim nLinkNo As Integer '見つけたメニューの番号
nLinkNo = -1 'エラーの-1で初期化する
For n = 0 To Me.WebBrowser2.Document.Links.Length - 1 'リンクオブジェクトから探る
'タイトルが情報メニューのリンクを探す
If Me.WebBrowser2.Document.Links(n).Title = "情報メニュー" Then
nLinkNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nLinkNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "情報メニューが見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけたリンクを押す .Click
Me.WebBrowser2.Document.Links(nLinkNo).Click '単純に.Clickメソッドを使う
'↑次は、ここで起動した 情報メニューを捕まえないとなぁ。。。
'WebBrowser1に切り替わり、表示を待つ
While Me.WebBrowser1.Busy Or Me.WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
'切り替わりが速いと動画がつまらないので、1秒待つ(↑上の処理でOKなので、これは必要ないです。)
Application.Wait Time:=Now + TimeValue("00:00:01") '動画作りで切り替わりを記録したいので使った
'↑通常は、使いません。
'表示完了後、INPUTタグ オッズのボタンを探す
Dim tagINPUT As Object 'INPUTのタグを保存する
Dim nInputNo As Integer '見つけたオブジェクトの場所
Set tagINPUT = Me.WebBrowser1.Document.all.tags("INPUT") 'INPUTのタグを取り出す
nInputNo = -1 'エラーの-1で初期化する
For n = 0 To tagINPUT.Length - 1 'INPUTのタグを頭から探る
If tagINPUT(n).Value = "オッズ" Then
nInputNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nInputNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "オッズボタンが見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nInputNoのINPUTを押す .Click
tagINPUT(nInputNo).Click '単純に.Clickメソッドを使う
DoEvents
'↑次は、ここで起動した オッズの表を操作する
'WebBrowser1の切り替わり、表示を待つ
While Me.WebBrowser1.Busy Or Me.WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
'切り替わりが速いと動画がつまらないので、1秒待つ(↑上の処理でOKなので、これは必要ないです。)
Application.Wait Time:=Now + TimeValue("00:00:01") '動画作りで切り替わりを記録したいので使った
'↑通常は、使いません。
'SELECT タグから 単・複・枠連オッズ を 選択
Dim tagSELECT As Object 'タグ保存用
Set tagSELECT = Me.WebBrowser1.Document.all.tags("SELECT") 'SELECTのタグを抜き出す
tagSELECT.Item("g").Value = "Ota01" 'アイテム g に Ota01 を セット、選択されている値を直接代入で変更
'上の階層、Formを探して、.Submitする。
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagSELECT.Item("g").parentElement
While objOYA_TAG.tagname <> "FORM" 'タグの名前がFORMになるまで(FORM以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
objOYA_TAG.Submit '上へ行き、見つけたフォームを.Submit 送信処理
DoEvents
'WebBrowser1の切り替わり、表示を待つ
While Me.WebBrowser1.Busy Or Me.WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
DoEvents
'切り替わりが速いと動画がつまらないので、1秒待つ(↑上の処理でOKなので、これは必要ないです。)
Application.Wait Time:=Now + TimeValue("00:00:01") '動画作りで切り替わりを記録したいので使った
'↑通常は、使いません。
'単勝の表を取り込む。
'1R〜データが無くなるまで、処理を繰り返す
'新規のブックを追加する
Workbooks.Add '新規ブックを追加
Sheets.Add 'シートを新規追加する
ActiveSheet.Name = "単勝オッズ" 'シートに名前を付ける
Call bGET_TAN_sub_TABLE_COPY(1) '単勝取り込み 1R
Dim nRACE As Integer
Dim Y As Integer
For nRACE = 2 To 12 '2R-12R
Call bGET_TAN_RACE_SELECT(CStr(nRACE) & "R") 'レースの切り替え
Call bGET_TAN_sub_TABLE_COPY(25 * (nRACE - 1)) '単勝取り込み
Next
End Sub
'レース番号を受け取り、切り替える。
Private Sub bGET_TAN_RACE_SELECT(strRACE As String)
Dim n As Integer
'OPTION タグからレースを 選択
Dim tagOPTION As Object 'タグ保存用
Dim nOPTION As Integer '見つけたOPTIONタグを保存する変数。
Set tagOPTION = Me.WebBrowser1.Document.all.tags("OPTION") 'OPTIONのタグを抜き出す
nOPTION = -1 'エラーの-1で初期化する
For n = 0 To tagOPTION.Length - 1 'OPTIONのタグを頭から探る
If tagOPTION(n).InnerText = strRACE Then 'レース番号を探す、OPTIONのテキストで比較する
nOPTION = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nOPTION = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox strRACE & "レースが見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'OPTIONをセレクト、選択する。
tagOPTION(nOPTION).Selected = True '見つけたオブション(レース)を選択状態にする
'上の階層、Formを探して、.Submitする。
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagOPTION(nOPTION).parentElement '見つけたOPTIONの親を代入
While objOYA_TAG.tagname <> "FORM" 'タグの名前がFORMになるまで(FORM以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
objOYA_TAG.Submit '上へ行き、見つけたフォームを.Submit 送信処理
DoEvents
'WebBrowser1の切り替わり、表示を待つ
While Me.WebBrowser1.Busy Or Me.WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
DoEvents
'切り替わりが速いと動画がつまらないので、1秒待つ(↑上の処理でOKなので、これは必要ないです。)
Application.Wait Time:=Now + TimeValue("00:00:01") '動画作りで切り替わりを記録したいので使った
'↑通常は、使いません。
End Sub
'Y行目をもらって、オッズの表をセットする。
Private Sub bGET_TAN_sub_TABLE_COPY(nYLINE As Integer)
'テーブル取り出しのテスト
Dim n As Integer
'WebBrowser1の切り替わり、表示を待つ
While Me.WebBrowser1.Busy Or Me.WebBrowser1.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend
DoEvents
'切り替わりが速いと動画がつまらないので、1秒待つ(↑上の処理でOKなので、これは必要ないです。)
Application.Wait Time:=Now + TimeValue("00:00:01") '動画作りで切り替わりを記録したいので使った
'↑通常は、使いません。
'表示完了後、THタグ 馬名を探す
Dim tagTH As Object 'THのタグを保存する
Dim nTHNo As Integer '見つけたオブジェクトの場所
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
nTHNo = -1 'エラーの-1で初期化する
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "馬名" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nTHNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "馬名の表が見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
'テーブルが見つかったので、コピーする。
Dim r As Object
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー
Set r = Nothing 'Rは用済み
'形式を選択して貼り付け HTML貼り付けのテスト
Range("A" & CStr(nYLINE + 1)).Select
ActiveSheet.PasteSpecial Format:="HTML"
'単勝(人気順)
Set tagTH = Me.WebBrowser1.Document.all.tags("TH") 'THのタグを取り出す
nTHNo = -1 'エラーの-1で初期化する
For n = 0 To tagTH.Length - 1 'THのタグを頭から探る
If tagTH(n).InnerText = "単勝(人気順)" Then
nTHNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nTHNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "単勝(人気順)の表が見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'見つけた場所 nTHNoから上のTABLEオブジェクトを探す
Set objOYA_TAG = tagTH(nTHNo).parentElement '見つけたTH馬名 その上.parentElementを代入
While objOYA_TAG.tagname <> "TABLE" 'タグの名前がTABLEになるまで(TABLE以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
'↑必ずTHの上にTABLEがあると仮定して、エラー処理はしてないけど・・・
'テーブルが見つかったので、コピーする。
Set r = Me.WebBrowser1.Document.body.createControlRange
r.Add objOYA_TAG '上で見つけたテーブルを指定する。
r.Select 'セレクト 選択
Me.WebBrowser1.ExecWB 12, 0 'コマンド発行 OLECMDID_COPY = 12 コピー
Set r = Nothing 'Rは用済み
'形式を選択して貼り付け HTML貼り付けのテスト
Range("I" & CStr(nYLINE)).Select
ActiveSheet.PasteSpecial Format:="HTML"
End Sub
Private Sub CommandButton1_Click() 'テストで使う
Debug.Print Me.WebBrowser1.Document.URL
Debug.Print Me.WebBrowser1.Document.Title
Dim n As Integer
'INPUTタグ 決定のボタンを探す
Dim tagINPUT As Object 'INPUTのタグを保存する
Dim nInputNo As Integer '見つけたオブジェクトの場所
Set tagINPUT = Me.WebBrowser1.Document.all.tags("INPUT") 'INPUTのタグを取り出す
nInputNo = -1 'エラーの-1で初期化する
For n = 0 To tagINPUT.Length - 1 'INPUTのタグを頭から探る
If tagINPUT(n).Value = "決定" Then
nInputNo = n '見つけた番号をセットする。
Exit For '見つけたのでループを抜ける。
End If
Next n
'エラーの判断
If nInputNo = -1 Then '-1のまま、見つからなかったら、エラーにする。
MsgBox "決定 ボタンが見つかりません、システム管理者に連絡してください"
Exit Sub '関数を抜ける
End If
'上の階層、Formを探す。見つけたらobjFORMに代入する。
Dim objFORM As Object
Dim objOYA_TAG As Object '親のオブジェクトを入れる
Set objOYA_TAG = tagINPUT(nInputNo).parentElement '見つけたINPUTの親を代入
While objOYA_TAG.tagname <> "FORM" 'タグの名前がFORMになるまで(FORM以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
Set objFORM = objOYA_TAG '見つけたオブジェクトを代入(そのまま、下で使ってもいいんだけど。)
'↑で見つけたFORMを操作する。
Dim objSELECT As Object 'SELECTのタグ
Set objSELECT = objFORM.Item("m") 'Name=m Select を 代入
objSELECT.Options(1).Selected = True 'テストで上から2番目選択
Debug.Print "objSELECT.Options.Length " & objSELECT.Options.Length
Debug.Print "objSELECT.Options(0).Innertext " & objSELECT.Options(0).Innertext
Debug.Print "objSELECT.Options(1).Innertext " & objSELECT.Options(1).Innertext
Debug.Print "objSELECT.Options(2).Innertext " & objSELECT.Options(2).Innertext
'Formを送信する(決定ボタン.Clickでもいいけど FORM.Submitにしました)
objFORM.Submit '単純に.Submitメソッドで実行
End Sub
ポイントは、
<INPUT type="submit" value="決定">
を探し、
Set tagINPUT = Me.WebBrowser1.Document.all.tags("INPUT") 'INPUTのタグを取り出す
nInputNo = -1 'エラーの-1で初期化する
For n = 0 To tagINPUT.Length - 1 'INPUTのタグを頭から探る
If tagINPUT(n).Value = "決定" Then
みたいに、
.tags("INPUT") で取り出し、
If tagINPUT(n).Value = "****" Then
で判断しました。
FORMを見つけるには、
Set objOYA_TAG = tagINPUT(nInputNo).parentElement '見つけたINPUTの親を代入
While objOYA_TAG.tagname <> "FORM" 'タグの名前がFORMになるまで(FORM以外の間まわる)
Set objOYA_TAG = objOYA_TAG.parentElement 'さらに、一つ上の親タグを代入
Wend
Set objFORM = objOYA_TAG
↑決定ボタンから.parentElementで上・上・上の親オブジェクトを探し、
FORMまでたどり着きます。
次は、見つけたFORMの中の、
<SELECT size="3" name="m">
の操作、 OPTION を 選択なので、
Nameが付いていたので利用して、
Set objSELECT = objFORM.Item("m") 'Name=m Select を 代入
.Item("m") を使って、簡単に指定できました。
あとは、OPTIONの選択なので、
objSELECT.Options(1).Selected = True 'テストで上から2番目選択
.Optionsで、SELECT中のOPTIONタグに比較的簡単にたどり着けました。
04/12 レース場を切り替える、開催地の切り替え IE操作 単勝表取込み :
http://www.youtube.com/watch?v=ZPRcprX-i5Q