[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA IE制御 id属性のないinputテキストボックスへの値の入力について』(めだか)
お読み頂きありがとうございます。
VBAのIE制御でウェブサイトのテキストボックスに値を入力したいと考えています。
今回操作したいサイトを管理者ツールで確認したところ、
nameのみでid属性がなかったため指定の仕方が分からず苦慮しています。
オートメーションエラーや接続切れのエラーが出てしまいます。
管理者ツールで確認した内容
1→<input maxlength="15" size="30" name="username" >
2→<input maxlength="15" size="30" name="xml:link/@link" >
試してダメだった事
objIE.document.all.("username").value =“user”
document.getElementsByName("username")).value =“user”
2はそもそも("xml:link/@link" )と書く事が出来ずエラーになります。
調べ方が悪いのですがid属性のないテキストボックスの指定方法が見つける事が出来ず途方に暮れています。
そもそもid属性がなくても指定って出来るのでしょうか?
また、2のnameがよく分からないのですがこれは指定できない形なのでしょうか。
それとも変換してあげればできるようになるのでしょうか
< 使用 Excel:Excel2013、使用 OS:Windows10 >
(隠居じーさん) 2019/08/28(水) 20:11
>objIE.document.all.("username").value =“user” >document.getElementsByName("username")).value =“user” >2はそもそも("xml:link/@link" )と書く事が出来ずエラーになります。
簡単な環境でテストしてみましたけど、 Nameが他に無いなら(※)、こんなのでどちらも問題なかったですけど。
objIE.Document.getElementsByName("username").Item.Value = "user" objIE.Document.getElementsByName("xml:link/@link").Item.Value = "user"
(※)複数あるなら、隠居じーさんの案でループを回せばいいんじゃないんですか?
(半平太) 2019/08/28(水) 20:32
input type="text"で検索してみて
(閲覧者) 2019/08/28(水) 21:42
objIE.document.getElementsByName("username")(0).Value = "user"
または、隠居じーさんさん案の具体例なぞ。 INPUTタグだし、NAME指定はしてあるので、INPUTタグを全てループして、NAMEが一致するものを探せば良いです。見つかったオブジェクトのValueに文字列代入。
With objIE.document For i = 0 To .getElementsByTagName("INPUT").Length - 1 If .getElementsByTagName("INPUT")(i).Name = "username" Then .getElementsByTagName("INPUT")(i).Value = "user" Exit For End If Next i End With (???) 2019/08/29(木) 09:23
貴重なお時間を割いてご回答頂きありがとうございました!!
ヒントや実例を交えてのご説明
とても分かりやすく今後の作成にあたって活用していきたいと思います。
見よう見まねで作成しているど素人のため
エラーの起きた原因を見定める事が出来ていませんでした…
Set IE = CreateObject("InternetExplorer.Application")
を辞めて
Set IE = New InternetExplorerMedium
にする事でオートメーションエラーから脱却出来ました!
基礎知識がない状態でやりたい事から逆引きしてやってるからこんな事が起きたんだと思います。
本を買って基本的なところから勉強します!
ご回答くださり本当にありがとうございました!
(めだか) 2019/08/30(金) 08:33
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.