• ベストアンサー
  • 困ってます

vbscriptでIE自動入力(コンボボックス選択について)

  • 質問No.2795092
  • 閲覧数4808
  • ありがとう数4
  • 回答数1

お礼率 100% (2/2)

すみません。vbsでIEのフォームに自動入力したいのです。
で、できないところがありまして質問します。
上から

コンボボックスA(あ、い、う)を選べる
テキストボックスB
チェックボックスC

というサイトです。

どうもBとCにinputタグにdisabledと書いてあり入力規制?されてます
ソースBは
<input type=text size="20" name="B" disabled>
となってます。Cも同様です。
Aのコンボボックスを選択すると入力できるようになります。
vbsはこうしてみました。

IE.document.form.A.value="あ" 又は IE.document.form.A.selectedIndex=0
IE.document.form.B.value="か"
IE.document.form.C.checked=true

しかしこれではAに”あ”は入りますが、
B,Cの規制が解除されません。
(一応文字が白抜き表示で入っているように見えるでもデータとしては入力されてない)。
手動で選択すると解除されます。
Aのソースが<select style="width:10" name="A" onChange="F()">
となっているのでこのonchangeが怪しいと思っているのですが
どうでしょうか。
どのようにしたらいいんでしょうか。
<script language="JavaScript" src="xxx.js">
とソースにあるのでJavaも関係あるのでしょうか。あまり良く分かってません。
ツールを使いメモリ上のソースを確認すると
Aを手動で選ぶとB,Cのdisabledが消えました。

お助けください。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 75% (154/203)

正しい使い方かどうかわかりませんが、下記のスクリプトのようにするとonChangeが発生し、手動のような動きになると思います。
Windows XP Pro SP2 + IE6 で試しました。

-----テスト用 combo.htmlファイル
<HTML><HEAD>
<TITLE>combo change</TITLE>
</HEAD><BODY>
<SCRIPT>
function F(){
//alert ("F()が呼び出されました");
if (form1.combo1.value=="あ")
form1.text1.disabled=false;
else
form1.text1.disabled=true;
}
</SCRIPT>
<FORM name="form1">
<SELECT name="combo1" onChange="F()">
<OPTION value="あ">あ</OPTION>
<OPTION value="い">い</OPTION>
<OPTION value="う" selected>う</OPTION>
</SELECT>
<P><BR></P>
<INPUT size="20" type="text" name="text1" value="default" disabled>
</FORM>
</BODY></HTML>
-----

----- スクリプト
set IE=WScript.CreateObject("InternetExplorer.Application")
IE.Navigate("C:\TOOL\SCRIPT\Test\combo.html") '★combo.htmlファイルのフルパス
IE.Visible=true
WScript.Echo "IEのブロックを解除してから実行して下さい。"
IE.document.form1.combo1.selectedIndex=0
IE.document.form1.combo1.onChange 'これを書くとonChangeが発生します
IE.document.form1.text1.value="変更できます"
-----
お礼コメント
rampower

お礼率 100% (2/2)

動かなかったサイトに合わせて回答通りに書き換えると
バッチリ動きました。大変助かりました。
どうもありがとうございました。
投稿日時:2007/03/05 21:33
関連するQ&A
ページ先頭へ