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


山田  2005-04-02 02:11:11  No: 120626

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-02 02:50:15  No: 120627

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

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

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


LESIA  2005-04-02 02:52:12  No: 120628

追記

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


LESIA  2005-04-02 03:03:10  No: 120629

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

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


山田  2005-04-02 03:26:03  No: 120630

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

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


魔界の仮面弁士  2005-04-02 06:32:31  No: 120631

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加