会員ページのリンク/ボタンをクリックする方法
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2018年8月23日(木)19時57分 From: ジャッカル | 返事 削除 変更 |
新しいタブが開いたってことはそいつをつかまえないと処理できないよ。 https://www.vba-ie.net/ie/iefind.html これにIE捕まえる方法があるからこれを応用してみては? > > @ ユーザーID・パスワードを入力してログインをする > A 会員ページにあるボタンをクリックする > B 新しいタブが開く > > VBAにて上記のIE操作をしたいと考えておりますが、A以降が動作しません。 > どのようにしたらボタンをクリック後新しいタブを開くことができますでしょうか。 > ご教授いただければ幸いです、何卒宜しくお願い申し上げます。 > > > 【会員ページ リンクボタン】 > > <div class="******-panel sso-link" data-analyticskey="◇◇" href="javascript:void(0)" > data-href="https://entry.*****or.jp/member/**********="> > <div> > <img width="150" height="48" alt="△△" src="images/contents/logo_******_system.png"> > </div> > <div> > <p class="f-red f-bold">↑↑</p> > <p class="f-red f-bold">登録は</p> > <p class="f-red f-bold">こちらから</p> > </div> > <hr> > <div class="small f-bold text-left"> > こちらから<br> > 一括でご登録いただけます</div> </div> > > > > --@コード-------------------------------------------------------------------------------- > Sub logIn() > Dim objIE As InternetExplorer 'IEオブジェクトを準備 > Set objIE = CreateObject("InternetExplorer.Application") '新しいIEオブジェクト作成してセット > objIE.Visible = True 'IE表示 > > objIE.navigate "https://portal.*****.or.jp/" ポータルサイトを開く > Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち > DoEvents > Loop > > Dim strUsername As String > strUsername = Worksheets("ID一覧").Range("A1").Value > > Dim strPassword As String > strPassword = Worksheets("ID一覧").Range("B1").Value > > Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備 > Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット > > htmlDoc.getElementsByName("loginID")(0).Value = strUsername 'name="username"にユーザー名を入力 > htmlDoc.getElementsByName("loginPasswd")(0).Value = strPassword 'name="password"にパスワードを入力 > htmlDoc.getElementById("submit1").Click 'ログインボタンをクリック > > Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち > DoEvents > Loop > > Set htmlDoc = objIE.document > > End Sub > > > --Aコード(動かなかったもの)-------------------------------------------------------------------------------- > > 'Dim htdoc As HTMLDocument > ' Set htdoc = ie.document > ' htdoc.getElementByClassName("*****sso-link").Click > > --Aコード(動かなかったもの)-------------------------------------------------------------------------------- > > 'Dim img As Object > 'For Each img In htmlDoc.all.tags("img") > ' If img.alt = "△△" Then img.Click > 'Next |
Message#1 2018年8月21日(火)13時58分 From: 梅子 | 返事 削除 変更 |
初めてご質問差し上げます。 @ ユーザーID・パスワードを入力してログインをする A 会員ページにあるボタンをクリックする B 新しいタブが開く VBAにて上記のIE操作をしたいと考えておりますが、A以降が動作しません。 どのようにしたらボタンをクリック後新しいタブを開くことができますでしょうか。 ご教授いただければ幸いです、何卒宜しくお願い申し上げます。 【会員ページ リンクボタン】 <div class="******-panel sso-link" data-analyticskey="◇◇" href="javascript:void(0)" data-href="https://entry.*****or.jp/member/**********="> <div> <img width="150" height="48" alt="△△" src="images/contents/logo_******_system.png"> </div> <div> <p class="f-red f-bold">↑↑</p> <p class="f-red f-bold">登録は</p> <p class="f-red f-bold">こちらから</p> </div> <hr> <div class="small f-bold text-left"> こちらから<br> 一括でご登録いただけます</div> </div> --@コード-------------------------------------------------------------------------------- Sub logIn() Dim objIE As InternetExplorer 'IEオブジェクトを準備 Set objIE = CreateObject("InternetExplorer.Application") '新しいIEオブジェクト作成してセット objIE.Visible = True 'IE表示 objIE.navigate "https://portal.*****.or.jp/" ポータルサイトを開く Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop Dim strUsername As String strUsername = Worksheets("ID一覧").Range("A1").Value Dim strPassword As String strPassword = Worksheets("ID一覧").Range("B1").Value Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備 Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット htmlDoc.getElementsByName("loginID")(0).Value = strUsername 'name="username"にユーザー名を入力 htmlDoc.getElementsByName("loginPasswd")(0).Value = strPassword 'name="password"にパスワードを入力 htmlDoc.getElementById("submit1").Click 'ログインボタンをクリック Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop Set htmlDoc = objIE.document End Sub --Aコード(動かなかったもの)-------------------------------------------------------------------------------- 'Dim htdoc As HTMLDocument ' Set htdoc = ie.document ' htdoc.getElementByClassName("*****sso-link").Click --Aコード(動かなかったもの)-------------------------------------------------------------------------------- 'Dim img As Object 'For Each img In htmlDoc.all.tags("img") ' If img.alt = "△△" Then img.Click 'Next |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降