- ベストアンサー
VBAでWEB上の入力項目に値をいれたいのですがフォームのタイプがhiddenの場合の入れ方がわかりません。
お世話になります。 VBAでWEB上の入力項目に値をいれたいのですがフォームのタイプがhiddenにはどのようにいれたらよいでしょうか? WEB上では (1)「選択」ボタンを押す。 (2)別の画面が開き、そこで、値を選択してOK (3)元の画面に戻ると(2)の値が反映されている。 WEBのソース的にみると (1)の状態 <TD bgcolor="#cccccc"> <INPUT type="image" name="s_otherto" alt="選択" src="/image/s_choice.gif" border="0"> </TD> (2)別の画面で値を選択 (3)の状態 <TD bgcolor="#cccccc"> <INPUT type="image" name="s_otherto" alt="選択" src="/image/s_choice.gif" border="0"> <INPUT type="hidden" name="otherto" value="(2)で選択したID"><FONT size="2">(2)で選択した個人名</FONT> </TD> やりたいことは、今は、手で、(1)~(3)を実行しているのですが、 VBAでどのようにしたら、自動で (1)の状態から(3)の(<INPUT type="hidden" name="otherto" value="(2)で選択したID"><FONT size="2">(2)で選択した個人名</FONT>)が追加された状態にするにはどのようにしたらよいのでしょうか? typeがtextの場合は、 objIE.Document.getElementsByName("memo")(0).Value = "文章" で入れれることがわかったのですが、 objIE.Document.getElementsByName("otherto")(0).Value するとエラーが出ます。。。 お手数ですがよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
objIE.Document.getElementsByName("otherto") ↑これはオブジェクトです。 (1)の時まだありません。 (2)の処理を施し (3)で初めて現れるオブジェクトです。 ※Value参照で落ちているのではない ※objIE.Document.getElementsByName("otherto")(0)という配列が存在していないのに、0番目を参照しているから落ちている という事を理解しましょう オブジェクト参照は、こまめに変数にセットしてあげると、どこで落ちているかがわかりやすくなりますよ。 「otherto」などを作成して、TDに追加してあげないといけません。 Dim l_htmDoc As Object Set l_htmDoc = objIE.Document Dim l_objImg As Object Dim l_tblTD As Object 'イメージを取得 Set l_objImg = l_htmDoc.getElementsByName("s_otherto")(0) 'イメージの親のTDを取得 Set l_tblTD = l_objImg.parentNode 'TDにHIDDENを追加 Dim l_htmHdn As Object Set l_htmHdn = l_htmDoc.createElement("input") With l_htmHdn .Type = "hidden" .Name = "otherto" .Value = "(2)で選択したID" End With Call l_tblTD.appendChild(l_htmHdn) 'TDにFONTを追加 Dim l_htmFont As Object Set l_htmFont = l_htmDoc.createElement("font") With l_htmFont .Size = "2" .innerText = "(2)で選択した個人名" End With Call l_tblTD.appendChild(l_htmFont)
その他の回答 (1)
- Hardking
- ベストアンサー率45% (73/160)
要するにサブウィンドウの設定値を 開いた親ウィンドウの隠し項目に反映するすればいいのですね。 ちなみに質問内容に<FORM></FORM>タグが無いですけど??? サブウィンドウの選択画像ボタンが押下された時に 下記処理をする。 window.opener.document.FORM名.otherto.value="選択ID";
お礼
本当に本当に本当に本当に。。。 大感謝です!!!!!!!!!!!!!!! ありがとうございます!!!!!!!!!!できました!