• 締切済み

IEの制御のマクロをつくっていますが

ログインと作業実行を別々のマクロにしたいのですが マクロでログインを省略して次の画面にもっていきたいので objIE.navigate "https://........... とやると、セキュリティの関係だと思いますが画面がはじかれてしまいます。 ですのでいまはひとつの作業をするのにその都度ログインのマクロからになってしまいます。 何かいい方法がございましたらご教授ください。 Sub ログイン() Dim objIE As InternetExplorer Dim strUserName, strPassword As String strUserName = Range("AA1").Value strPassword = Range("AA2").Value Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.navigate "https://mobile.e..............’ログイン画面 IE_Complete objIE '表示終わるまで待つ objIE.Document.All.req_userId.Value = strUserName 'ユーザーネーム objIE.Document.All.req_password.Value = strPassword 'パスワード objIE.Document.All.LoginSubmit.Click 'クリック IE_Complete objIE ここまでログイン 上記を省略して以下からはじめたい Sub 作業実行() objIE.navigate "https://...........

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>最後の",​ &H800は何を意味しているのですか >教えていただければ幸いです。 Navigate2 メソッドの第二引数です 詳しくはこちらを http://ken3-info.blog.ocn.ne.jp/objie/2009/06/navigate2_h800_.html

0810ku
質問者

補足

ご回答ありがとうございました。 その後できたのですが、今日やってみると”実行時エラー438” オブジェクトはプロパティまたはメソッドをサポートしません と出てしまいます。 ご教授いただければ幸いです。 Sub () Dim objIE As Object Dim objShell As Object Dim objWin As Object Set objShell = CreateObject("Shell.Application") For Each objWin In objShell.Windows If TypeName(objWin.Document) = "HTMLDocument" Then Set objIE = objWin Exit For End If Next objIE.Navigate2 "https://....", &H800 IE_Complete objIE For i = 1 To Range("G1").Value If Cells(6 + i, 3).Value = 0 Then AA = Cells(6 + i, 4).Value BB = Cells(6 + i, 11).Value CC = Cells(6 + i, 8).Value この下の文が黄色になる objWin.Document.forms(0).req_instrumentCode.Value = AA IE_Complete objIE objWin.Document.forms(0).req_searchInstrumentDecided.Click IE_Complete objIE objIE.Document.forms(0).req_orderQuantity.Value =BB objIE.Document.forms(0).req_executionConditionCode.selectedIndex = 2 objIE.Document.all.req_limitOrderPrice.Value = CC objIE.Document.forms(2).butConfirm.Click IE_Complete objIE objIE.Document.forms(1).butExecute.Click IE_Complete objIE objIE.Navigate "https://........" IE_Complete objIE Next i Cells(3, 7).Value = "完了" Cells(3, 7).Font.Color = RGB(255, 0, 0) End Sub

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>ログインと作業実行を別々のマクロにしたいのですが >マクロでログインを省略して次の画面にもっていきたいので 既に起動しているIEを検索して新しいタブで表示するのなら Dim objIE As Object Dim objShell As Object Dim objWin As Object Set objShell = CreateObject("Shell.Application") For Each objWin In objShell.Windows   If TypeName(objWin.document) = "HTMLDocument" Then     Set objIE = objWin     Exit For   End If Next objIE.Navigate2 "http://www.yahoo.co.jp/", &H800

0810ku
質問者

お礼

ありがとうございます。できました!! とても困っていたので助かりました。 objIE.Navigate2 "​http://www.yahoo.co.jp/",​ &H800 最後の",​ &H800は何を意味しているのですか 教えていただければ幸いです。

関連するQ&A

  • IE制御でコピーをしたいのだけれど

    うまくいきません ログイン後の最初のページはコピーすることができるのですが フレームを指定して objDOC.Links(18).Click としてページを進めた先がコピーできません いかに全文を載せます。自分でいろいろやってみたのですが ちょっとわかりません。教えてください! Sub 確認()   Dim objIE As InternetExplorer Dim strUserName, strPassword As String Dim Code, Suryo, Kakaku As Long strUserName = Range("AA1").Value strPassword = Range("AA2").Value Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True   'ログイン画面---------------- objIE.Navigate "https://www2…………   IE_Complete objIE objIE.Document.all.req_userId.Value = strUserName         objIE.Document.all.req_password.Value = strPassword   objIE.Document.all.LoginSubmit.Click IE_Complete objIE 'ログイン画面ここまで Dim objFRAME As FramesCollection    Set objFRAME = objIE.Document.frames    Debug.Print "フレームの数は" & objFRAME.Length    Dim objDOC As HTMLDocument    Set objDOC = objFRAME(0).Document    Set objDOC = objFRAME(0).Document        objDOC.Links(18).Click objIE.ExecWB 17, 0 objIE.ExecWB 12, 0 Sheets("コピー").Select    Cells.Select Selection.Delete Shift:=xlUp  Range("A1").Select  ActiveSheet.PasteSpecial Format:="HTML" objIE.Quit End Sub

  • エクセル excelVBA で 自動ログイン

    エクセルvba を使ったシステムトレードをしようと思い 初心者ながらVBAをいじっています. まずはじめにsbi証券に自動ログインをしようとする vbaを作ろうとおもい,インターネットを駆使して コードを書いてみましたが documentメソッドは失敗しましたというエラーがでてしまいます. 自分なりに色々と見返したりしたのですが どこが悪いのかいまいちわかりません. もしよろしければどこが悪いのか指摘していただけないでしょうか? よろしくお願いします. 以下ソース ******************************** Option Explicit Sub test() Dim ie As Object Dim strUserName, strPassword As String strUserName = Range("C5").Value strPassword = Range("C7").Value Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate "https://k.sbisec.co.jp/bsite/visitor/top.do" IE_Complete ie ' Do While ie.Busy = True '何もしないループ(笑) ' DoEvents ' Loop ie.Document.All.UserName.Value = strUserName 'ユーザー名 ie.Document.All.Password.Value = strPassword 'パスワード ie.Document.All.login.Click 'クリック End Sub Public Sub IE_Complete(ByVal ie As Object) 'IE読み込みが完了するまで待つ Do While ie.Busy = True DoEvents Loop Do While ie.Document.ReadyState <> "complete" DoEvents Loop End Sub

  • VBAについて。セルにあわせてマクロを変更したい。

    VBAを使い、yahooの路線検索を閲覧しています。 出発地 目的地 府中 桜上水 【ボタン】 新宿 御徒町 【ボタン】 日暮里 巣鴨  【ボタン】 A列のセルを出発地 B列のセルを目的地 にそれぞれ入力しています。 C列の【ボタン】を押すとマクロが動くようにしたいと思っています。 下記のマクロの『Range("")』の部分を 3行目の【ボタン】をクリックしたら 『Range("A3")』 『Range("B3")』 に 4行目の【ボタン】をクリックしたら 『Range("A4")』 『Range("B4")』 に・・・ としたいと思っています。 200行近くあるので、ひとつひとつマクロを作成するのはとても大変で、色々と調べたのですが、どうにも解らず、助けを求めにきました。 また… 【ボタン】に関しても、特に意味はなく、使いやすいかなと思った程度ですので、同じような使い方をしている方で、便利にしようする方法などありましたら教えていただければと思います。 ------------------------------------------------------------------- Sub 路線検索() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://transit.yahoo.co.jp/" Do While objIE.Busy = True DoEvents Loop objIE.Document.all("from").Value = Range("A2").Value objIE.Document.all("to").Value = Range("B2").Value objIE.Document.all.tags("input").Item(17).Click End Sub -------------------------------------------------------------------

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

  • ie操作 ログインボタンを押せないです

    こんばんは。いつもお世話になっております。 ie操作でうまく行かないので教えてください。 イトーヨーカドーのサイトにログインしたいのですがログインボタンが押下できません。 Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://www.iy-net.jp/" Do While objIE.Busy = True DoEvents Loop objIE.Document.all("userId").Value = ID objIE.Document.all("password").Value = PW objIE.Document.forms(0).submit Set objIE = Nothing End Sub --------------------------------------------------------- だと、 「ハイフンを除く7ケタを半角数字でご入力ください」になってしまいます。 ログインボタンが押せてないのかもしれないけど、よくわかりません。 --------------------------------------------------------- Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://www.iy-net.jp/" Do While objIE.Busy = True DoEvents Loop objIE.Document.all("userId").Value = ID objIE.Document.all("password").Value = PW For i = 0 To objIE.Document.Links.Length - 1 If objIE.Document.Links(i).innerText = "ログイン" Then objIE.Document.Links(i).Click Exit For End If Next i Set objIE = Nothing End Sub --------------------------------------------------------- にすると、 https://www.iy-net.jp/nspc/logininput.do のURLが表示されて会員認証の画面になってしまいます。 だからって objIE.Navigate "https://www.iy-net.jp/" を https://www.iy-net.jp/nspc/logininput.do にして objIE.Document.forms(0).submit すると https://www.iy-net.jp/nspc/searchresult.do のページが表示されて 「再度 TOPページよりログインいただけますようお願い申し上げます。」 になってしまいます。 ログインする方法を教えていただけますか? ご教授よろしくお願いします。

  • ie操作 2回目のwaitが無視される

    FC2にログインし、アクセス解析のページを開きたいのですが Dim objIE As InternetExplorer Sub test() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://fc2.com/login.php" Call wait objIE.document.all("email").Value = "test@yahoo.co.jp" objIE.document.all("pass").Value = "test" objIE.document.all.Item("Image").Click Call wait 'ここが無視される!!! objIE.navigate "http://analyzer.fc2.com/" End Sub Sub wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.readyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub このコードだとうまくいきません。 このコードをF5で実行すると、エラーにはならないのですが、 objIE.navigate "http://analyzer.fc2.com/" ができてません。 objIE.navigate "http://analyzer.fc2.com/"の部分にブレークポイントを設置し、 ログイン後の画面がちゃんと表示されたことを確認して、 objIE.navigate "http://analyzer.fc2.com/"に進むと、 objIE.navigate "http://analyzer.fc2.com/"が無視され、 http://analyzer.fc2.com/のページに移りません。 同じ条件なのに、 objIE.navigate "http://analyzer.fc2.com/"の部分にブレークポイントを設置し、 ログイン後の画面がちゃんと表示されたことを確認して、 objIE.navigate "http://analyzer.fc2.com/"に進むと、 実行時エラー -2147024726のオートメーションエラーになることがあります。 どうやったら、2回目のwaitが無視されずに進みますか? ログインされると http://fc2.com/login.php から http://id.fc2.com/?login=done へURLが変わりますが objIEをウォッチウィンドウで見てると、ずっとhttp://fc2.com/login.phpのままです。 環境:win8.1/エクセル2010

  • VBAでサイトにログインする際について

    とあるサイト(https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html)にログインしたく、VBAにてDocumentオブジェクトで、以下のように書きましたが、クリックのところでエラーになってしまいます。 ボタン名が submit%template なのでそのまま入力してもうまくいきませんでした。[]で閉じてもうまくいかず悩んでいます。 どなたか教えていただけませんか。 strURL = "https://www.rakuten-sec.co.jp/ITS/V_ACT_Login.html" strLogin = "loginid" strPassword = "password" objIE.Navigate strURL With objIE.Document .all.loginid.Value = strLogin .all.passwd.Value = strPassword .all.submit%template.Click

  • マクロ作動中にポップが出て、作業が止まる

    エクセルで下記のようなマクロを組んで、 URLからサイトタイトルを取得しています。 Sub sample() Dim Carea As Range Set Carea = Selection If Carea(1).Value = "" Then Exit Sub Dim Tcel As Range Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.Application") For Each Tcel In Carea ObjIE.Navigate Tcel.Value Do While ObjIE.Busy = True Or ObjIE.readyState <> 4 DoEvents Loop Tcel.Offset(, 1) = ObjIE.document.Title Next ObjIE.Quit Set ObjIE = Nothing End Sub 途中で、添付画像1のようなポップが出て、マクロが止まります。 自動でサイトタイトルを取得したいのですが、 このポップが出ることで、作業が中断してしまいます。 このポップが出たら、自動で「キャンセル」にする方法はあるでしょうか? マクロ自体に記述を足して、対策できるでしょうか? Excel2016です。 よろしくお願いいたします。

  • サイトタイトルを取得するマクロを最速化

    下記のマクロは、サイトタイトルを取得するマクロです。 このマクロで、サイトタイトルを取得していましたが、 5秒に1つくらいのペースなので、もっとスピードを上げたいと思っています。 最速化するには、どこか修正した方が良い箇所はあるでしょうか? また、変更するべき設定などもあったりするでしょうか? よろしくお願いいたします Sub sample() Dim Carea As Range Set Carea = Selection If Carea(1).Value = "" Then Exit Sub Dim Tcel As Range Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.Application") For Each Tcel In Carea ObjIE.Navigate Tcel.Value Do While ObjIE.Busy = True Or ObjIE.readyState <> 4 DoEvents Loop Tcel.Offset(, 1) = ObjIE.document.Title Next ObjIE.Quit Set ObjIE = Nothing End Sub

  • 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 ログインのボタンに特に名前の指定がないようなのですが、この場合に ボタンをクリックする方法をご存知の方、ご指導ください。

専門家に質問してみよう