
お世話になります。
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 するとエラーが出ます。。。
お手数ですがよろしくお願いします。
No.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)
No.1
- 回答日時:
要するにサブウィンドウの設定値を
開いた親ウィンドウの隠し項目に反映するすればいいのですね。
ちなみに質問内容に<FORM></FORM>タグが無いですけど???
サブウィンドウの選択画像ボタンが押下された時に
下記処理をする。
window.opener.document.FORM名.otherto.value="選択ID";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームのテキストボ...
-
テキストボックスのvalueとtext...
-
VB.NETでコンボボックスの1行目...
-
ACCESS VBA 画像ファ...
-
スクロールバーの境界値は?
-
RPGのプログラム感のパラメーター
-
マクロで奇数と偶数の値を2か所...
-
VB.NETでアクティブなformを知...
-
値を返さないコード パス
-
ISDBNULLをスルーしてDBNULLが...
-
setcookieで「path」に複数の値...
-
【ASP.NET】 DataTextFieldの値...
-
ListViewクリック テキストボッ...
-
PL/SQLでのTO_DATEの時間取得に...
-
VB初心者。小数点以下の表示で...
-
Excel vba ユーザーフォームテ...
-
vb6のVSFlexGridで選択行、列の...
-
FlexGridで複数選択したセル、...
-
【ACCESS】リレーションを組ん...
-
array関数で格納した配列の型を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
VB.NETでコンボボックスの1行目...
-
C#の質問です
-
Excel VBAのリストボックスの値...
-
値を返さないコード パス
-
【C++/CLI.NET】コンボボックス...
-
VB初心者。小数点以下の表示で...
-
PL/SQLでのTO_DATEの時間取得に...
-
マクロ 特定のセル値のみクリ...
-
マクロで奇数と偶数の値を2か所...
-
VB.NETのスクロールバーコント...
-
VB.netでRGB関数を使うには
-
シーケンサで最小値を保持する
-
【ASP.NET】 DataTextFieldの値...
-
C言語では0は・・・
-
変数名の取得
-
VB.NETでアクティブなformを知...
-
textboxとLabelを動的に変更する
-
ACCESS VBA 画像ファ...
おすすめ情報