IE操作で新しいページのソース取得方法は?

このQ&Aのポイント
  • VBによりIEでページを表示させ、新しいページに移動した際のHTMLのDocument取得方法を教えてください。
  • 表示させたページの制御にはobjIEを使用しましたが、新しいページでも同じように制御する方法を教えてください。
  • 初心者で質問が中途半端でしたが、よろしくお願いします。
回答を見る
  • ベストアンサー

続:IEの操作で新ページのソース取得方法は?

「VBによりIEでページを表示させ、そのページから新しいページに移動させたとき、その新ページのHTMLのDocument取得方法をご教示頂きたくお願いします。」と先に質問し下記の回答を頂きました。   HTMLタグ付きなら   WebBrowser1.Document.body.innerHTML   だったと思います。 最初に表示させたページの制御には、次のようにしました。   objIE.Document.All("ACCOUNT").Value = "xxxx"   objIE.Document.All("PASSwd").Value = "yyyy"   objIE.Document.All("btn").Click 新しいページに対しても最初のページと同じようにして制御出来るようにするにはどうすればよろしいのでしょうか? 初心者で、最初の質問は中途半端でした。よろしくお願いします。

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

  • ベストアンサー
回答No.1

先日の説明で可能と思ってましたが、どの辺りが不明なのか よくわかりません。 VBAですが、以下のURLを参考にしてみて下さい。 http://ie.vba-ken3.jp/sample/001/2009-03-07.html

isunsun
質問者

お礼

chochobizoさん、またまたお世話になりありがとうございます。 VBの基礎、基本が出来ていないために、何が分からないのか自分でも良く分かってなく的確な質問が出来てなくて申し訳ありません。 疑問点を色々ネットで当っていて、三流君さんのサイトも度々拝見させて頂いていますが、教えて頂いた書き込みは知りませんでした。 教えて頂いた情報で勉強して疑問点の解決に繋げたいと思います。そこでの疑問点はまた本サイトで質問させて頂きたいと思っていますので、支障がなければまたお教え頂ければ幸いです。

関連するQ&A

  • IE操作で次ページを別タブに表示するには?

    VB.NET(VB 2010 Express)でIE(Ver.9)をWebBrowserコントロールではなく直接操作しています。 下記のコードのように、あるサイトのトップページを表示し、それにユーザID、パスワードを入力し、ログオンボタンをクリックして次のページを表示します。 次のページはトップページと同じタブに表示されますが、これを別タブに表示するにはどうすればよいのでしょうか?ご教示頂きたくよろしくお願い致します。 objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate("https://xxxxxxx.co.jp")    '表示ページのソース読込み完了を待つ(略) objIE.Document.all("ACCOUNT").Value = "yyyyyy" 'ユーザIDを入力 objIE.Document.all("PASSWD").Value = "zzzzz"   'パスワードを入力 objIE.Document.all("btn").Click()              'ログインボタンをクリック     '以下表示した次ページのソースを処理

  • IE操作で別タブ表示のHTMLソースの取得方法は?

    VB.NET(VB 2010 Express)でIE9をWebBrowserコントロールではなく直接操作しています。 先にここで、あるサイトのトップページを表示し、それにユーザID、パスワードを入力し、ログオンボタンをクリックして次のページを別タブで表示する方法を教えて頂きました。 そこで、別タブに表示した次ページのHTMLソースを取得する方法として、下記のコードを教えて頂きました。 Dim objIE As Object objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate("http://login.yahoo.co.jp/") Do While objIE.Busy System.Threading.Thread.Sleep(500) Loop objIE.Document.login_form.login.Value = "xxxxx" 'ユーザIDを入力 objIE.Document.login_form.passwd.Value = "yyyyy" 'パスワードを入力 objIE.Document.login_form.target = "_blank" '別ページに表示 objIE.Document.login_form.submit() Dim Shell As Object Dim win As Object Dim newObjIE As Object Shell = CreateObject("Shell.Application") For Each win In Shell.Windows If TypeName(win.document) = "HTMLDocument" Then 'このif文がTrueにならない If win.document.URL = "http://yahoo.co.jp" Then newObjIE = win Exit For End If End If Next しかし、コメントのあるif文がTrueにならないようです。修正方法を教えて頂きたくよろしくお願い致します。

  • 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で書こうか悩んでいます。 どうぞよろしくお願い致します。

  • IEの操作で新ページのソース取得方法は?

    VBによりIEでページを表示させ、そのページから新しいページに移動させたとき、その新ページのHTMLのDocument取得方法をご教示頂きたくお願いします。

  • yahooにvbaでにログインする時

    今までは objIE.Document.all("UserName").Value = MyUserName objIE.Document.all("Passwd").Value = PW で、問題なくログインできていたのに ("UserName").Value だけ失敗するようになりました。 エラー内容は オブジェクトが必要です。(Error 424) です。 しかし、 objIE.Document.all.UserName.Value = MyUserName objIE.Document.all.Passwd.Value = PW にするとコードが通ります。 ダブルコーテーションでくくると何がいけないのでしょうか?

  • 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)」 になります。 ログイン後のソースをエクセルに書き出す方法も考えましたが、書き出しに時間がかかるのでやめました。 ご教授よろしくお願いします。

  • 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ページよりログインいただけますようお願い申し上げます。」 になってしまいます。 ログインする方法を教えていただけますか? ご教授よろしくお願いします。

  • VBAからIE操作でログインできない

    社内の業務管理システムにエクセルVBAでログインしようとしています、が、ログインはもとより、IDを入力する部分に私のID情報すら入力されません。 とりあえずID枠に入力する方法をアドバイスをお願いします。 ◆htmlソース <table> <tr> <td>ID</td> <td><input type="text" name="UserId" id="UserId" /></td> </tr> <tr> <td>PW</td> <td><input type="password" name="UserPass" id="UserPass" /></td> </tr> ◆VBAでは以下のいずれの文も失敗(ID入力枠に何も入らない。エラー発生。) ※右辺のD12セルには私のID情報を入力しています。 ObjIE.Document.all.UserId.Value = Worksheets("MyData").Range("D12").Value ObjIE.Document.all("UserId")(0).Value = Worksheets("MyData").Range("D12").Value ObjIE.Document.all("UserId").Value = Worksheets("MyData").Range("D12").Value ObjIE.document.forms(0).elements("UserId").Value = Worksheets("MyData").Range("D12").Value ObjIE.document.forms(0).elements("UserId")(0).Value = Worksheets("MyData").Range("D12").Value ObjIE.Document.getElementById("UserId").Value = Worksheets("MyData").Range("D12").Value ObjIE.document.all.Item("UserId").Value = Worksheets("MyData").Range("D12").Value 上記コードの何が間違っているのでしょうか? あるいは、上記の原因特定するために、何を試せばよいでしょうか? 宜しくお願いいたします。

  • なぜだめなのか教えてください 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 でもログインできません。 ご教授よろしくお願いします。

  • 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