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使っています。
> objIE.document.all.***.Value = "Ken"
> ***の部分に変数を使いたいのですが、どうすればいいのでしょうか?
***の部分は、HTMLが
<INPUT TYPE=text NAME="***">
というようになっているとすると、このNAMEの値が入り、VBの変数を直接
***の部分に書くことはできません。
代わりにgetElementByNameを使いましょう。
objIE.document.getElementByName(hensuid).Value = "Ken"
追記
変数hensuidは文字列型で宣言してください。
Dim hensuid As String
hensuid = "userid"
すいません、間違えました。
DHTMLにgetElementByNameは無いですね(^^;
objIE.document.getElementByName(hensuid).Value = "Ken
じゃなくて
objIE.document.all(hensuid).Value = "Ken
でした。
LESIAさんありがとうございます。
書かれたとおり
objIE.document.all(hensuid).Value = "Ken"
としましたら、
今度は
「オブジェクト変数または With ブロック変数が設定されていません。」
というエラーが出てしまいました。
確かにhensuidには正しい文字が入っているのですが。
> DHTMLにgetElementByNameは無いですね(^^;
getElementByName メソッドはありませんが、
getElementsByName メソッドや
getElementById メソッドや
getElementsByTagName メソッドなどがありますよ。
ツイート | ![]() |