VBAでWEBのエレメントを指定する方法について
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年10月21日(火)07時21分 From: 管理人 | 返事 削除 変更 |
「検索」というボタンですが、「検索」というキーワードが入っているエレメントがここでしか利用されていない場合は、以下のような処理をすることでクリックできます。 For Each objTag In objIE.document.getElementsByTagName("input") If InStr(objTag.outerHTML, "検索") > 0 Then objTag.Click Call ieCheck(objIE) Exit For End If Next これは該当するエレメントの中に「検索」というキーワードが入っていた場合にクリックするという処理です。 もし「検索」というキーワードが他で利用されていた場合は、最初にあるエレメントが対象となりますので、その場合は、キーワードの長さを伸ばしたり、そこでしか利用されていないキーワードを探してください。 タグのクリックについては、以下を確認ください。 http://www.vba-ie.net/form/subroutine-tagclick.html |
Message#1 2014年10月7日(火)11時45分 From: エレメント | 返事 削除 変更 |
例えばですが、yahoo検索する場合は、下記のように処理をしています。 Sub Sample() Dim objIE As Object '表示 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://.yahoo.co.jp/" '待ち Do While objIE.Busy = True DoEvents Loop '入力とクリック With objIE.Document .all("p").Value = "検索キーワード" .forms("w").elements(7).Click ' End With End Sub 本来であれば、「検索」というボタンをクリックしたいのですが、サイトの中にはname属性がないものも多く、指定できないためエレメントが何番目にあるのか添え字をつけてクリック処理をしています。 これだと何番目にあるのかわざわざ数えなければいけなく、とても大変です。 このような場合、皆さんどう対応させていますか? もっと楽にできる方法があるのではないかと思い質問させていただきました。 回答お願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降