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

このQ&Aのポイント
  • vbscriptを使用してIEのフォームに自動入力する方法について質問です。
  • 特に、コンボボックスの選択や、disabled属性の解除について困っています。
  • 現在のコードではコンボボックスの値は入力できますが、disabled属性が解除されません。解決策を教えてください。
回答を見る
  • ベストアンサー

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

すみません。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が消えました。 お助けください。

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

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

正しい使い方かどうかわかりませんが、下記のスクリプトのようにすると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
質問者

お礼

動かなかったサイトに合わせて回答通りに書き換えると バッチリ動きました。大変助かりました。 どうもありがとうございました。

関連するQ&A

  • HTMLのコンボボックスとの関連

    HTMLの同ページ内にコンボボックスAとコンボボックスBがあるとして、 <!-- JavaScript部------ --> <script language="javascript"> <!--// function cmdCtr() { if (document.forms[0].A.value=='a2'){ document.forms[0].B.disabled=true; document.forms[0].B.selectedIndex=0; document.forms[0].B.value="b1"; }else{ document.forms[0].B.disabled=false; } } //--> </script> <!-- HTML部----------- --> <FORM> <SELECT name="A" onChange="cmdCtr();"> <OPTION value="a1">a1</OPTION> <OPTION value="a2">a2</OPTION> <OPTION value="a3">a3</OPTION> </SELECT> <SELECT name="B"> <OPTION value="b1">b1</OPTION> <OPTION value="b2">b2</OPTION> <OPTION value="b3">b3</OPTION> </SELECT> </FORM> 以上のようなJavaScriptを記述しました。しかし、上記の流れ通りならばa2を選択するとBボックスが選択出来なくなり、Bボックスのb1の値が自動でサーブレットに飛ぶはずなのですが、エラーが起きてしまいます。書き方が悪いのでしょうか? ちなみに、AボックスBボックス両方がきちんと選択されている場合はエラーは起きません。

  • エクセルのマクロのコンボボックスへ入力した

    エクセルのマクロのコンボボックスへ入力した値をセルに表示する際のことで質問があります。 ABCDEという5つのコンボボックスから、A1、A2、A3,A4、A5のセルへ入力していますが、時々CやDの値がなくてEの値を左詰めするというか空白のセルを作らずに入力したいです。 例えばAのコンボボックスには入力でA1、Bのコンボボックスは未入力でCのコンボボックスに入力した値をA2のセルへ入力といった具合にしたいです。 コンボボックスBが未入力なら、 ・コンボボックスCの値をBへ ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスCが未入力なら、 ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスDが未入力なら、 ・コンボボックスEの値をDへ ・コンボボックスEの値を入力 という手順を挿入。 で本来のやりたいことの コンボボックスA~EをセルA1:A5の範囲へ入力。 と教えてもらったんですが、それを生かせず、自分なりに考えてみて IF Then Else を使ってA3まではやれたんですが、A4、A5がうまくできなくて挫折しています。 http://www.max.hi-ho.ne.jp/happy/YNxv233.htmlを参考にしてくださいと教わったのですがどれが使えるのかもわからず・・・・。 わかんないことばかりですいません。

  • コンボボックスの自動更新について

    コンボボックスの自動更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中には「入力」ボタンとコンボボックスと テキストボックスがあります。 コンボボックスは、「ABCDEF」と6つのリストがあります。 ユーザーフォーム起動時には、コンボボックスは空欄で コンボボックスから、入力したい商品を選んで、入力ボタンを押して コンボボックスとテキストボックスの内容を入力・コンボボックスを 空欄に戻しています。 これを、「A」を選んで入力ボタンをおしたら「B」が選ばれる。 「B」を選んで入力ボタンをおしたら「C」が選ばれるといったように コンボボックスに表示されるリストを自動で更新することは できないでしょうか? Select case などを利用して組み立てようとしたのですが、 数時間以上調べても出来ません。 教えていただけると助かります。

  • あるコンボボックスを選択するともう一方のコンボボックスが自動的に決まる方法

    二つのコンボボックスがあります。 1つのコンボボックスをcb1、もう一方のコンボボックスをcb2とします。cb1の中にはA、B、Cという項目があります。 質問の内容は、例えばcb1のAを選択するとcb2の項目が自動でa、b、cになっている、cb1のBを選択するとcb2の項目が自動でd、e、fになっている、ということなのです。 こんな感じに自動的に状態が変化することは可能なのでしょうか?宜しくお願いします。

    • ベストアンサー
    • Java
  • disabledの点で。2

    また同じソースでの質問なのですが、以下のようなソースで、1のテキストボックスに過去に入力したもの(プルダウンみたいに下がって出てくる履歴のようなもの)を選択すると、2の方の入力ができなくなります。履歴の数字を入れても2の方に記入できるようにするにはどのようにしたら良いのでしょうか。また、これらの処理を行うとき、onChange以外のものを使ってできるのでしょうか?大変困っております、よろしくお願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • コンボボックス

    コンボボックスから選択した内容によってそれに関するコンボボックスの内容を変えたいと思っています。 例えば コンボボックスA 書類1  分類a 書類2  分類a 書類3  分類b 書類4  分類c コンボボックスB 提出先1  分類a 提出先2  分類b 提出先3  分類b 提出先4  分類c と言う風になっているのですが、 コンボボックスAの書類1を選択したらコンボボックスB と共通の分類の提出先名がコンボボックスに表示したいのです。 書類3を選択すると、コンボボックスBには提出先2、提出先3が表示されるといった感じです。 ACCESS2000を使用しています。 よろしくお願いします。

  • プルダウン Or コンボボックスを選択したら、テキストボックスを入力不可にさせる方法 

    フォーム制御として、JavaScriptを使用して、プルダウンよりある項目が選択されたと同時に、あるテキストボックスの入力を不可、またはmaxlengthを0にしたいのですが、思うように出来ません。 maxlengthをvalue等に変更させたら値は変更されたので、 関数としての動きは問題なさそうです。 どなたか、ご教授お願いいたします。 ※現在下記のソースは、list番号を指定していません。 <script language="JavaScript"> <!-- function MM_jumpMenu(){ parent.document.form1.text1.maxlength=0; } //--> </script> <form name="form1" method="post" action=""> <select name="menu1" onChange="MM_jumpMenu()"> <option selected>unnamed1</option> <option>unnamed2</option> </select> <input type="text" name="text1" maxlength="10"> </form>

  • ACCESSのコンボボックスについて

    ACCESSでコンボボックスを使っているときに たまに入力できなくなってしまう時があり困っています。 例えばA,B,Cという3つのデータを選択できるコンボボックスがあり、 現在、Aが選択されていてBに変更しようとした時に コンボボックスの表示部分が突然空欄(または選択されているのに表示されていない)になってしまいます。 その後、どれを選択してもコンボボックスには何も表示されなくなってしまいます。 この現象が起こるとなぜか同じフォーム内のボタンなどにも不都合が起こるようになってしまいます。 (テキストボックスのデータを削除するボタンがあるのですがおしてもなにも起こらなくなってしまいました) いろいろ試しているのですが全く原因がわかりません。 どのようなところに原因がありそうかなどあれば教えてください。 宜しくお願いします。

  • コンボボックスでデータ入力

    Access 2000 フォームにコンボボックスとテキストボックスを配置しています。 コンボボックスには種別[A][B][C]を選択できるようにし、 テキストボックスには納期日の「年」「月」「日」の3つのテキストボックスを 配置しました。 「種別」「納期日」を入力後、実行ボタンをクリックすると テーブル「T_商品」の種別フィールド、納期日フィールドに NULL値のフィールドに一括でデータを入力したいと考えております。 どのようにすればいいのでしょうかよろしくお願いします。

  • シート上のコンボボックスの使い方

    シート上のコンボボックスの使い方 現在作っている物があるのですが、色々と調べてはみるものの解決出来なくて困っています。 ☆やりたいこと シート1 コンボボックスA コンボボックスB コンボボックスC 一覧表(A1~A16)の枠だけが書かれているもの コンボボックスA・・・青森 秋田 岩手 コンボボックスB・・・100 200 300 コンボボックスC・・・北 東 西 南 シート2 コンボボックスAとBとCの選択されたものによって選ばれる一覧表(例A1~E16)のデータ ☆シート1にてコンボボックスを3種類選択した時に、シート1枠だけの一覧表にシート2のデータが表示される! ということがやりたいです。 説明がアバウトすぎて申し訳ありませんが、初心者なりに色々やった結果が惨敗に終わっている状態です。 皆様のお力を貸していただきたく思います。

専門家に質問してみよう