お風呂の温度、何℃にしてますか?

IEの操作に関して、あるhtmlページに複数のラジオ・ボタンがあってそのなかの一つを選択する方法を教えていただけますでしょうか。

そのラジオ・ボタンは次のようにjava scriptでソースに記述されています。
<input type = "radio" name="bname" value="5">
そこで次のようにマクロで記述したのですが、「実行時エラー:438、オブジェクトはこのプロパティまたはメソッドをサポートしていません。」と出ます。

.Navigate targetURL
With .Document.Forms(0)
.Item ("bname")
.Value(5).Checked = True ← ここでエラーが出る。
End With
.Value(5)を.Value("5")としても同じエラーがでます。
別のプロパティ・メソッドが必要なのでしょうか。

A 回答 (2件)

Excel VBAで書いてみました。

targetURLにはANo.1に書いたようなFormがあるものとし、
(1)radio "bname"の4番目をチェックします。あるいは、 
(2)value="5"を探してチェックします。

下記のページが大いに参考になると思います。
http://www.ken3.org/vba/backno/vba148.html

Windows XP + Office XPで試しました。

Sub radio()
Dim objIE As Object
Dim objITEM As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate targetURL

'objIE.document.forms(0).Item("bname", 4).Checked = True '(1) index=4をチェック

For Each objITEM In objIE.document.forms(0).Item("bname") '(2) Value="5"をチェック
If objITEM.Value = "5" Then
objITEM.Checked = True
End If
Next

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。うまくいきました。

お礼日時:2007/07/28 09:35

radioは0から始まるindexでアクセスできます。

VBAではなくJavaScriptですが下のような感じで。

Windows XPで試しています。

<HTML>
<!-- radio.hta --
-->
<HTA:APPLICATION ID="oHTA" APPLICATIONNAME="radio" SCROLL="no"
INNERBORDER="no" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="no" SINGLEINSTANCE="yes" />
<HEAD>
<META http-equiv="Content-Type" content="text/html">
<TITLE>radio</TITLE>
<SCRIPT>
function Window_onLoad(){
document.forms(0).bname(4).checked=true; // ★ index=4のvalue="5"をcheck
}
</SCRIPT>
</HEAD>
<BODY onLoad="Window_onLoad()">
<FORM>
<input type="radio" name="bname" value="1" />A
<input type="radio" name="bname" value="2" />B
<input type="radio" name="bname" value="3" />C
<input type="radio" name="bname" value="4" />D
<input type="radio" name="bname" value="5" />E
<input type="radio" name="bname" value="6" />F
</FORM></BODY></HTML>
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせていただきます。

お礼日時:2007/07/28 09:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報