VBAでIE操作方法について教えてください

このQ&Aのポイント
  • 三菱東京UFJ銀行に自動でログインするためにVBAで操作していますが、ログインがうまくできません。
  • objIE.document.Forms(0).submitとすると、サイトが更新されてしまいます。
  • objIE.document.all.gotoPageFromAA011().Clickとしたいのですが、VBAではエラーになります。どうすればログインできるのでしょうか?
回答を見る
  • ベストアンサー

VBAでIE操作

三流君を見てもよくわからなかったので教えてください。 三菱東京UFJ銀行に自動でログインできるようにエクセルVBAで操作していますが パスワードを入れた後のログインがうまく出来ません。 objIE.document.Forms(0).submit だと、サイトが更新されてしまいます。 ソースは <td class="buttons"> <a href="javascript:void(0)" onClick="gotoPageFromAA011(); return false;" tabindex="3"><img src="https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif" alt="ログイン" onmouseover="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login_over.gif'" onmouseout="this.src='https://directg.s.bk.mufg.jp/refresh/imgs/DIRECT_IMAGE/LOGINOUT/btn_login.gif'"></a> なので、 objIE.document.all.gotoPageFromAA011(); return false;.Click とやりたいところですが、VBAではエラーになってしまいます。 どうすればログインできるのでしょうか? http://www.ken3.org/cgi-bin/group/vba_ie_form.asp#Input_button_Click を見てみましたが私がうまく出来てないのか出来ませんでした。 ご回答よろしくお願いします。

  • a3f6ug
  • お礼率98% (119/121)

質問者が選んだベストアンサー

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

a3f6ugさん こんにちは。   > objIE.document.Forms(0).submit フォームは1つではなく2つあります。 ※Debug.Print objIE.document.Forms.length  で確認できると思います。   今回は2つめのフォームをサブミットしますので  objIE.document.Forms(1).submit  となると思います。   他の方法では  objIE.Document.links(7).click  でもできるかと思います。   試してみてください。

a3f6ug
質問者

お礼

会社で試してみました! objIE.document.Forms(1).submit だと、うまく行きませんでしたが、 objIE.Document.Links(7).Clickでうまく行きました! ありがとうございました。

a3f6ug
質問者

補足

ありがとうございます!会社のパソコンでやらなくてはいけないので、月曜日に試してみます!!!

関連するQ&A

  • なぜだめなのか教えてください ie操作 vba

    vbaでログインする時、ログインボタンの名前がmember_left_btn01なので、 With objIE.document .all("mail_ad").Value = 登録アドレス .all("pass_wd").Value = PW .all("member_left_btn01").Click End With としたら、オブジェクトが必要ですというエラーになりました。 ログインしようとしているサイトは、 https://www2.seibu.jp/usrinfo/clubon/internet/member.htmlのサイトです。 ログインの部分のソースを見ると <input class="member_left_btn01" type="image" src="../images/btn_login.gif" border="0"/> となっておりますが、classはnameではないから、 .all("member_left_btn01").Click だとエラーになるのでしょうか? .all.submit でも .submit でもログインできません。 ご教授よろしくお願いします。

  • OCNにVBAでログインしたいのですが

    OCNにVBAでログインしたいのですが うまくできません。 URLは https://login.ocn.ne.jp/auth/s2001/pc/AuthLoginDisplay.action もしくは http://www.ocn.ne.jp/ です。 objIE.Document.all("comid").Value = " tenor.ocn.ne.jp" objIE.Document.all("password").Value = "" ここまではうまくいくのですが、ログインしようと、 objIE.Document.forms(0).submit 'ダメ objIE.Document.all("action:AuthLoginLogin").Checked = True 'ダメ でもダメでした。 ソースは <p class="align-c roll"><input type="image" alt="ログイン" src="common/images/btn_login.gif" id="AuthLoginDisplay_AuthLoginLogin" name="action:AuthLoginLogin" value="Submit" class="button"/> </p></form> なのですが うまくできません。 わかる方ご教授よろしくお願いします。

  • VBA IE操作 ログイン後URLを取得したい

    yahooにログインするVBAコードはわかるのですが、 ログインが失敗なのか正常にログインできたのかをVBAで知りたいです。 結果を知るには、ログインボタン押下後のURLを取得できればいいと思うのですが その方法がわかりません。 ログイン自体は、 --------------------------------------------------------- Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp" '表示終了まで待つ Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.UserName.Value = "UserName" objIE.document.all.passwd.Value = "****" objIE.document.Forms(0).submit End Sub --------------------------------------------------------- で、できました。 objIE.document.Forms(0).submitの後には、 ログインが出来ていたら http://www.yahoo.co.jp/ のページへ行き、 ログイン失敗なら https://login.yahoo.co.jp/config/login? のURLが表示され、図のように 「Yahoo! JAPAN IDまたはパスワードが正しくありません。」 と表示されます。 objIE.document.Forms(0).submitの後に MsgBox objIE.URL を入れると 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 になり、 MsgBox objIE.Navigate を入れると 「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」 になります。 ログイン後のソースをエクセルに書き出す方法も考えましたが、書き出しに時間がかかるのでやめました。 ご教授よろしくお願いします。

  • vba ie操作 ボタンを押したい(2)

    https://ca.omc-card.co.jp/member/omcplus_login.html のサイトにログインしたいのですが、ログインボタンが押せません。 ソースは、 ********************************************************************************** <FORM action="../member/xt_mem_top_login.asp" method="post" name="form1"><input type="hidden" name="sid" value=""><input type="hidden" name="pw" value="">     ~~~省略~~~ <TABLE border="0" cellspacing="0" cellpadding="5" class="tab_button_bottom15"> <TR> <TD><A href="javascript:checkInput(document.form1);"><IMG src="../img/button/login.gif" alt="ログイン" width="160" height="35" border="0"></A></TD> </TR> </TABLE> </FORM> ********************************************************************************** です。 --------------------------------------------------------------------------------- Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://ca.omc-card.co.jp/member/omcplus_login.html" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.forms(0).Item("sid_input").Value = "×××" objIE.Document.forms(0).Item("pw_input").Value = "×××" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop 'objIE.Document.forms(1).submit 'エラーになる objIE.Document.all.Item("document.form1").Click 'エラーになる objIE.Document.forms(0).getElementsByTagName("input")(0).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("input")(1).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("document.form1")(1).Click 'エラーになる objIE.Document.forms(1).getElementsByTagName("input")(1).Click 'エラーになる Set objIE = Nothing End Sub --------------------------------------------------------------------------------- テキストにIDとPWを入れるところまでは出来たのですが、 ログインボタンを押すことができません。 すいませんがご教授ご回答よろしくお願いしますm( )m

  • VBAでWebのデータを取得したい

    MS OFFICEカテゴリに投稿後、一件の反応も無かったので旧質問は削除の上板換えします。本題はVBとVBAが異なることはを承知での質問です。 エクセルVBAで取引先のサイトにログインし、請求データをダウンロードしようとしています。 ログインから目的のページに移動/チェックボックス等の処理もできたので objIE.Document.all.Item("Command.csvFileDownload").Click とすれば「ファイルのダウンロード」ウィンドウがポップアップするかと思ったら、IEのセキュリティ保護にブロックされてしましました。 「マウスでクリックしたらちゃんとダウンロードできるのに?」と思うのですが、VBAでの操作は危険=ウィルス?と認識されて当然な気もします。 IEのセキュリティレベルを変更せずにVBAでダウンロードまですることはやはり無理なのでしょうか? 該当のタグは以下のとおりです。 <input type="image" name="Command.csvFileDownload" src="/img/hogehoge/btn_download.gif" onclick="noDblClickCheck=true;"onmouseover="this.src='/img/hogehoge/btn_download.gif'" onmouseout="this.src='/img/hogehoge/btn_download.gif'" alt="ダウンロード"> どうぞ宜しくお願いします。

  • VBAでIE操作

    こんばんは。エクセル2003です。 証券会社にVBAでログインを試みてるのですができません。 ソースの一部を転記します。 <label for="account_id"><span>ユーザー名</span></label> <input type="text" tabindex="1" id="account_id" name="account_id" /> <label for="password"><span>パスワード</span></label> <input type="password" tabindex="2" id="password" name="password" /> <div id="rememberbox"> <label for="remember" id="rememberlabel">ユーザー名を記録する</label> <input type="checkbox" tabindex="3" name="remember" id="remember" /> </div> なので、下記VBAコードを作りました。 Sub IGマーケット証券() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.igmarkets.co.jp/login/" Do While objIE.Busy = True DoEvents Loop Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.Document.all("account_id").Value = "test" objIE.Document.all("password").Value = "test" objIE.Document.Forms(0).submit Set objIE = Nothing End Sub ですが、 objIE.Document.all("account_id").Value = "test" のところでエラーになってしまいます。 objIE.Document.all("login").Value = "test" に変えても同じです。 何がいけないのでしょうか? アドバイスよろしくお願いします。

  • mixi vbaでログインしたい

    こんばんは。教えてください。 mixiへ自動ログインするコードを書いているのですが ソースを見ても、”ログインボタンを押す”がわかりません。 ソースの一部は ***************************************************************** <form action="/login.pl" method="post" name="login_form"> <input type="hidden" value="/home.pl" name="next_url" /> <ul class="loginForm"> <li class="inputForm">ログインメールアドレス<br /> <input tabindex="1" size="30" name="email" /></li> <li class="inputForm">パスワード<br /> <input tabindex="2" type="password" name="password" /></li> <li class="autoLogin"><input tabindex="3" type="checkbox" name="sticky" id="auto" /><label for="auto">次回から自動的にログイン</label></li> </ul> <p class="pwReminder"><a href="http://mixi.jp/remind_password.pl">※パスワードを忘れた方はこちら</a></p> <p class="loginButton"><input tabindex="4" type="image" alt="ログイン" src="http://img.mixi.jp/img/basic/logout/btn_login001.gif" /></p> <p class="sslLink01"><a href="https://mixi.jp/">SSL(https)はこちら</a></p> </form> ***************************************************************** です。 これを元に Sub ログイン_mixi() URL = "http://mixi.jp/home.pl" Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate URL objIE.document.Forms(0).item("email").Value = "○○○○○○" objIE.document.Forms(0).item("password").Value = "○○○○" objIE.document.all.sticky.Click End Sub まで出来たのですが、最後のログインボタンをクリックする方法がわかりません。 ログイン以外は、nameの部分を抜き取ればうまく行ったのですが ログインだけはnameがないので、どうしていいのかわかりません。 ご教授よろしくお願い致します。

  • VBA IE操作 自動ログイン

    とある証券会社(M証券)へ自動ログインを試みています。 他の証券会社は ObjIE.Document.all.pinNo.Value = PW というように URLのソースから「name」を探してその値を代入していました。 上記の場合は ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ <TD bgcolor="#E6DBAC" align="center" nowrap> <B>取引暗証番号</B><BR><A href="Javascript:void('0');" onClick="Javascript:openKeyBoard('secKey', 'pinNo');"> <img src="/static/image/kidou.gif" id="secKeyButton" width="150" height="18" border="0"> </A><DIV style="position:absolute" align="center"> <DIV id="secKey"></DIV></DIV></TD> <TD bgcolor="#FFFFFF"> <INPUT maxlength="16" size="17" name="pinNo" id="pinNo" value="" type="password"> </TD> ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ から探し出せました。 しかし「次へ」ボタンを押してログインしたいのですが ソースが ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ <TD valign="bottom"> <INPUT type="image" src="/static/image/bt_next.gif" width="62" height="25" border="0" alt="次へ"> </TD> <TD valign="bottom"> <A href="/ITS/login/Logout.jsp;jgiwww12=LnXfcXFz3CLVrmMjKDrMB1510mwwHx2w9JT82WQ2fXLQ8nZMs0Gg" onClick="return linkCheck()" target="_top"> <IMG src="/static/image/bt_cyushi.gif" alt="中止" width="62" height="25" border="0"></A></TD> ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ しかなく、nameが見当たりません。 この場合は、どのようにしてログインすればいいのでしょうか? ご教授よろしくお願い致します。

  • VBの記述方法はVBAと同じなのですか?

    これからVisual Studio 2012を導入してVBA(Excel)でやっていたことをVSでやりたいのですが 基本的にVSのVisual Basicの記述方法はVBAと同じなのでしょうか? 例えばネットのあるサイトをログインして遷移後のhtmlを取得するには、VBAだと以下のように書きます。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://xxxxxx/login.aspx" objIE.document.All.txt_userid.Value = xxx 'ユーザー名 objIE.document.All.txt_pass.Value = xxx 'パスワード objIE.document.All.btn_login.Click '送信結果のページ読み込みが終わるまでループ While (objIE.Busy = True Or objIE.ReadyState <> 4)  DoEvents Wend '表示したページの<BODY>部のHTMLを取得 Dim htmlBody As String htmlBody = objIE.Document.Body.InnerHtml C#で記述しようか、慣れているVBAと似ているVBで書こうか悩んでいます。 どうぞよろしくお願い致します。

  • VBA IE操作、指定したボタンのクリック

    具体的には、ヤマト運輸のビジネスメンバーズのHPです。 https://bmypage.kuronekoyamato.co.jp/bmypage/servlet/jp.co.kuronekoyamato.wur.hmp.servlet.user.HMPLGI0010JspServlet 以下のコードで、それぞれのボックス(IDやパスワードなど)を入れることができました。 D3~D6セルに IDなどログインに必要な情報をいれてあります。 しかし、その下部分にある ログイン のボタンをクリックする方法が見つからず困っています。 Sub ボタン1_Click() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate Range("D3").Value objIE.Visible = True Do Until objIE.Busy = False DoEvents Loop objIE.Document.frm.CSTMR_CD.Value = Left(Range("D4").Value, 12) objIE.Document.frm.CSTMR_CLS_CD.Value = Right(Range("D4").Value, 3) objIE.Document.frm.LOGIN_USER_ID.Value = Range("D5").Value objIE.Document.frm.CSTMR_PSWD.Value = Range("D6").Value objIE.Document.frm.???.Click End Sub ログインのボタンに特に名前の指定がないようなのですが、この場合に ボタンをクリックする方法をご存知の方、ご指導ください。

専門家に質問してみよう