objIE.document.all.***.Value = "Ken"で***を好きに変えたい


山田  2005-04-01 17:11:11  No: 120626  IP: [192.*.*.*]

IE自動ログインみたいなのを作っています。
HTMLフォームにデータをセットするために
objIE.document.all.userid.Value = "Ken"
とすると、
IEのuseridフォームにKenがうまく入力されますが、
useridという文字が入っている変数、例えば、
Dim hensuid As Object
hensuid = "userid"
だとすると、
同じようにhensuidというuseridが入った変数を使って
objIE.document.all.hensuid.Value = "Ken"
とすると、

「型 'DispHTMLElementCollection' でパブリック メンバ 'hensuid' が見つかりません。」
とエラーが出てしまいます。

objIE.document.all.***.Value = "Ken"
***の部分に変数を使いたいのですが、どうすればいいのでしょうか?

変な質問だったらすみません。VB.NET使っています。

編集 削除
LESIA  2005-04-01 17:50:15  No: 120627  IP: [192.*.*.*]

> objIE.document.all.***.Value = "Ken"
> ***の部分に変数を使いたいのですが、どうすればいいのでしょうか?

***の部分は、HTMLが
<INPUT TYPE=text NAME="***">
というようになっているとすると、このNAMEの値が入り、VBの変数を直接
***の部分に書くことはできません。

代わりにgetElementByNameを使いましょう。
objIE.document.getElementByName(hensuid).Value = "Ken"

編集 削除
LESIA  2005-04-01 17:52:12  No: 120628  IP: [192.*.*.*]

追記

変数hensuidは文字列型で宣言してください。
Dim hensuid As String
hensuid = "userid"

編集 削除
LESIA  2005-04-01 18:03:10  No: 120629  IP: [192.*.*.*]

すいません、間違えました。
DHTMLにgetElementByNameは無いですね(^^;

objIE.document.getElementByName(hensuid).Value = "Ken
じゃなくて
objIE.document.all(hensuid).Value = "Ken
でした。

編集 削除
山田  2005-04-01 18:26:03  No: 120630  IP: [192.*.*.*]

LESIAさんありがとうございます。
書かれたとおり
objIE.document.all(hensuid).Value = "Ken"
としましたら、
今度は
「オブジェクト変数または With ブロック変数が設定されていません。」
というエラーが出てしまいました。

確かにhensuidには正しい文字が入っているのですが。

編集 削除
魔界の仮面弁士  2005-04-01 21:32:31  No: 120631  IP: [192.*.*.*]

> DHTMLにgetElementByNameは無いですね(^^;

getElementByName メソッドはありませんが、
getElementsByName メソッドや
getElementById メソッドや
getElementsByTagName メソッドなどがありますよ。

編集 削除