VBAで検索ボタンをクリックしたい
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2014年10月28日(火)05時46分 From: 管理人 | 返事 削除 変更 |
検索ボタンを押す部分は以下の部分ですね。 <button name="検索" id="search-products" type="submit" class="amznBtn btn-md-pri"> こちらをクリックするには、まずbuttonタグを掴まえます。 そして、buttonタグの中に「検索」というキーワードがあるもんだけをクリック処理すれば処理がうまくいくので、 以下のような処理になります。 #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If '---------------------------------------------------------------- '@指定URLを表示するサブルーチン「ieView」 Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True) 'IE(InternetExplorer)のオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IE(InternetExplorer)を表示・非表示 objIE.Visible = viewFlg '指定したURLのページを表示する objIE.Navigate urlName 'IEが完全表示されるまで待機 Call ieCheck(objIE) End Sub '---------------------------------------------------------------- 'AWebページ完全読込待機処理サブルーチン「ieCheck」 Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop timeOut = Now + TimeSerial(0, 0, 10) Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop End Sub '---------------------------------------------------------------- 'Bタグをクリックするサブルーチン「tagClick」 Sub tagClick(objIE As InternetExplorer, _ tagName As String, _ tagStr As String) 'タグをクリック For Each objTag In objIE.document.getElementsByTagName(tagName) If InStr(objTag.outerHTML, tagStr) > 0 Then objTag.Click Call ieCheck(objIE) Exit For End If Next End Sub '---------------------------------------------------------------- '▼ボタンをクリックさせるプログラム Sub sample() Dim objIE As InternetExplorer 'こちらのURLにその対象のURLを入力してください。 Call ieView(objIE, "http://www.vba-ie.net/") '検索ボタンをクリック call tagClick(objIE, "button", "検索") End Sub |
Message#1 2014年10月27日(月)00時35分 From: netcom | 返事 削除 変更 |
エクセルのVBAについて教えてください。 IEの検索ボタンを押したいんですけどどのようにしたらいいですか。 見よう見まねでやっているので何が悪くて出来ないのかも分かりません。 ソースはこのような感じになっています。 <input type="hidden" name="session-id" value="378-2678156-1297107"/> <input type="text" name="search-string" class="input-default" id="search-string" title="商品名" value="商品名" /> <button name="検索" id="search-products" type="submit" class="amznBtn btn-md-pri"><span>検索</span></button> </form> </div> <div id="current-product" class="mt" style="display:none;" /> <div id="selected-product"></div> |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降