タイトルが文字数の関係でおかしいのですが エクセルVBAで IEのHPに 値を代入して、送信するのですが 同じページで oObjDoc.getElementsByName()やoObjDoc.getElementsByID()などで、値を代入したいのですが、この構文の2回目の所で エラ検出の debugに 「書き込めない」 などのエラーが出ます。(当然、実際もスルーされます) 初期化がまずいのか 判断しかねています。 一般的なID、PSW代入ページから来ました Sleep 500 Set oObjDoc = Nothing Set pitem = Nothing Set oObjDoc = objIE.document Set pitem = oObjDoc.getElementById("order_type") value = "通常注文" 実際は3パターン Dim order As Object For Each order In pitem If InStr(1, order.innerText, value) > 0 Then pitem.value = order.value Exit For End If Next pitem.Click Set pitem = Nothing Sleep 500 id = "変更" '上記の入力を確定させるためだと思う 変更 クリック Set pitem = oObjDoc.getElementById(id) For Each pitem In objIE.document.getElementsByTagName("input") If pitem.value = id Then Exit For End If Next pitem.Click 'オーダーの内容 If TradeForm.ordertype_btn1 = True Then value = "3" Else value = "1" End If Set aradio = oObjDoc.getElementsByName("side") Debug.Print aradio.Length For i = 0 To aradio.Length - 1 Debug.Print i Debug.Print aradio(i).Name 2回目で エラー70 書き込みできません。 Debug.Print aradio(i).value If "side" = aradio(i).Name And aradio(i).value = value Then aradio(i).Checked = True Exit For End If Next Set pitem = Nothing で、aradio.Length は 2を返して Set aradio = oObjDoc.getElementsByName("side") はHP内容と一致、動作しているようです で、1回まわって 2回目(これが答えなのですが)の i=1 で 次 aradio(i).Name が 取れません。 debug.printは 2 0 side 3 1 ところが 前の id = "変更" '変更 クリック Set pitem = oObjDoc.getElementById(id) を 全部レムれば プログラムは 通ります。 debug.print が 書き込めない と言うエラーも 今まで始めてみました。 どれかの初期化が 抜けているのでしょうか よろしくどうぞ
↧