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
ポイントは、
を探し、
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の中の、