<input name="pf6" type="radio" value="1"> 成行 </input><br><input name="pf6" type="radio" value="0" checked > 指値 </input>
というのがあって
.Document.forms(0).elements("pf6").(0).Click
などと やっても見ましたが
メソッドをサポートしていませんと出ます・・・
どうすればいいのでしょうか
質問時には、必ず環境を書いてください。
それによって、使える命令も異なりますので。
HTMLを操作するコードを書くにしても、たとえば VBScript と VB6 と
VB.NET 2002/2003 と VB2005 とでは、それぞれ、別のコードになります。
(特に、VB2005 のマネージ DOM の場合)
> というのがあって
細かい事を言うと、これ、HTML の文法になってないですよ。
HTMLでは、</INPUT> という表記は許可されていませんから…。
(まぁ、IE/WebBrowser の方で、適当に解釈されるでしょうけれども)
> .Document.forms(0).elements("pf6").(0).Click
VB6 かな?
だとしたら、(0)の前のドットは不要でしょう。
それから、ラジオボタンの on / off については、上記のように
Click メソッドを呼び出すのではなく、checked プロパティに
True / False を入れるようにしてみてください。
早速のご返事ありがとうございます
すいませんでした
当方の環境ですが XP ホームエディション 2002 サービスパック2
で VB6 SP5 です
CGI で pf6 の部分が 接続するたびに 変更されて
成行 指値のラジオボタンが表示され
VBにて コントロールしたいのですが
成行 指値の 区別ができません 両方 pf6 ですよね
いろいろやってみます
説明はうまくできなくてすみません
HTML は ある証券会社の ネットのもので
それを 操作したいのですが
なかなかできません
With MyIe
.Document.forms(0).elements("pf6").Checked = True
End With
オブジェクト変数または With ブロック変数が設定されていません
と出ます
どうしたらいいのでしょうか
すいません
> HTML は ある証券会社の ネットのもので
『ある証券会社』とだけ言われましても、具体的な URL や HTML 構造が
わからない以上、正しいコードを提示しようが無いですよ。(^^;)
フレームセットになっていれば、コードも変わってきますし、
そもそも、.forms()に指定するインデックスが本当に 0 で良いのかも、
質問内容からは分かりません。
> オブジェクト変数または With ブロック変数が設定されていません
> と出ます
そのエラーが出たならば、どのオブジェクトまでが取得できていて、
どのオブジェクトが Nothing になっているのかをチェックしましょう。
たとえば、ページを遷移した直後に document プロパティにアクセスすると、
HTML の解析が終わっておらず、HTML構造を正常に取得できなかったり、
そのようなエラーが出たりする事があります。
> .Document.forms(0).elements("pf6").Checked = True
これだとまずいですね。
<input name=pf6> が複数存在しているため、.elements("pf6") からは
複数の要素を返すコレクションが返される事になります。
すなわち、そのうちの何番目を操作するのかを指定しなければなりません。
たとえば、元のHTMLが
<body>
<form action="foo.cgi">
<p>
<input type=radio name=pf2 value="Word">Word
<input type=radio name=pf2 value="Excel">Excel
</p>
<p>
<input type=radio name=pf6 value="C#">C#
<input type=radio name=pf6 value="J#">J#
<input type=radio name=pf6 value="VB">VB
</p>
</form>
</body>
のような構造だったとすれば、このような動作になります。
'これは「1」を返す
Debug.Print .document.forms.length
'これらは「5」を返す
Debug.Print .document.forms(0).elements.length
Debug.Print .document.forms.item(0).elements.length
Debug.Print .document.getElementsByTagName("INPUT").length
'これらは「3」を返す
Debug.Print .document.forms.item(0).elements("pf6").length
Debug.Print .document.forms(0).elements("pf6").length
Debug.Print .document.forms(0).pf6.length
Debug.Print .document.getElementsByName("pf6").length
'これらは「2」を返す
Debug.Print .document.forms(0).elements("pf2").length
Debug.Print .document.forms(0).pf2.length
'これらはいずれも、「VB」を on にするコード
.document.forms(0).elements("pf6").item(2).checked = True
.document.forms(0).elements("pf6")(2).checked = True
.document.forms(0).elements(4).checked = True
.document.forms(0).pf6.item(2).checked = True
.document.forms(0).pf6(2).checked = True
.document.forms(0).childNodes(1).children(2).checked = True
よくわからない質問で よく 答えていただき
ありがとうございました
.document.forms(0).elements("pf6")(2).checked = True
で うまく 動きました 感謝します
ツイート | ![]() |