初心者です。VBAでWebサイトにログインして次の次のページまで進みたいので、検索していろいろとやってみたのですが、うまくいきません。ご教授のほどよろしくおねがいいたします。
「ユーザネイム」と「パスワード」「ログイン」はクリアし、次のページまで進めましたが。その後のページで「発行システム」のボタンをクリックしたいのですが、記述方法がよくわかりません。その次のページの「外部データから発行」ボタンはIdがありましたの記述してみました。
Sub MySub() Dim objIE As InternetExplorer Set objIE = New InternetExplorer objIE.Visible = True objIE.navigate "https://bmypage.kuronekoyamato.co.jp/bmypage/servlet/jp.co.kuronekoyamato.wur.hmp.servlet.user.HMPLGI0010JspServlet" '管理画面ページのURL Call WaitIE(objIE) Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備 Set htmlDoc = objIE.Document 'objIEで読み込まれているHTMLドキュメントをセット htmlDoc.getElementById("CSTMR_CD").Value = "xx" 'ユーザーネーム htmlDoc.getElementById("CSTMR_PSWD").Value = "xx" 'パスワード htmlDoc.getElementsByClassName("nav-login-btn")(0).getelementsByTagName("a")(0).Click 'これでログインできるようになりました Set htmlDoc = Nothing 'ログインページのHTMLをいったん破棄 Call WaitIE(objIE) '画面遷移の待機 Set htmlDoc = objIE.Document 'ログイン後のページのHTMLを読み込む **'次のボタンクリックの記述がわかりません? '分からないので省略** Set htmlDoc = Nothing '2ページ目のHTMLをいったん破棄 Call WaitIE(objIE) '画面遷移の待機 Set htmlDoc = objIE.Document 'ログイン後のページのHTMLを読み込む htmlDoc.getElementsById("ex_data_import").Click '外部出力をクリックこれでいいのでしょうか? End Sub Sub WaitIE(objIE As InternetExplorer) Do While objIE.Busy = True Or objIE.ReadyState < 4 '読み込み待ち '4=READYSTATE_COMPLETE DoEvents Loop End Sub
**WEBサイトログイン画面には **
<dd class="nav-login-btn"><a href="javascript:void(0);" onClick="javascript:func_request_Link('LOGIN'); return false;">ログイン</a></dd>
次のページには
<li> <a href="javascript:void(0);" onclick="javascript:ybmCommonJs.useService('51');"> <span>通販決済:精算状況確認</span></a> </li><li> <a href="javascript:void(0);"onclick="javascript:ybmCommonJs.useService('04');"><span>Webサービス</span> </a> </li><li> <a href="javascript:void(0);" onclick="javascript:ybmCommonJs.useService('06');"> <span>発行システム</span></a>
最後のページは
<div class=topitem **id=ex_data_import**><div class=topmenu><a href=javascript:;></a><div class=mlarge><div class=imaging><img src=images/icon_ikkatu.png></div><h3>外部データから発行</h3><p>Excelやcsvファイルから入力情報を取り込み、送り状を発行できます。
試したこと
下記3種試しましたが3ページ目には進めませんでした。
'objIE.Document.Script.setTimeout "javascript:ybmCommonJs.useService('06'); return false;"
'デバック表示されないが、クリックされない
htmlDoc.getElementsByClassName("list-service-container")(0).getElementsByTagName("a")(2).Click
'デバックオブジェクト変数withブロック変数が設定されていません
'htmlDoc.getElementsByTagName("a")(19).Click
回答1件
あなたの回答
tips
プレビュー