- ベストアンサー
ログイン後他のページへ移動して表示保存
- 自動ログイン後の他のページを表示してHTMLで保存する方法について教えてください。
- 現在はhttps://www.aaaaaaa.comのHTMLをExcel上に表示していますが、https://www.aaaaaaa.com/bbに移動させて表示してHTMLで保存したいです。
- XP/Excel2003で使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
頑張って コーディング されたみたいですが、3点ほど ミス があります。 1)先ず、小さなコトですが、Sub test() に対する End Sub が抜けています。 ついでに、 objIE.Navigate "https://www.aaaaaaa.com/bb"" は objIE.Navigate "https://www.aaaaaaa.com/bb" でしょうね。 2)次に、 strBody = objIE.document.body.innerHTML として、strBody という変数の中に「取得したもの」を代入したのに、その直後に strBody = InputBox("ファイル名を指定してください") として、同じ strBody という変数の中に "別のもの"(ファイル名)を代入してしまっています。 従って、後者の変数名は「strFileName」などに変えて strFileName = InputBox("ファイル名を指定してください") のようにし、これ以降の「strBody」は、すべて「strFileName」に置換してください。 3)最後に、[Open ステートメント] で ファイル を開いたまでは良かったのですが、何もせずに [Close ステートメント] で ファイル を閉じています。 したがって、 >空ファイルのみ作成されていました。 ということになります。 開いた ファイル に対して書き込む操作は [Print # ステートメント] になります。 Open strFileName For Output As intFileNum Print #intFileNum, strBody Close #intFileNum のようにしてみてください。
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>移動させ表示してhtmlで保存したい 「URL01」に ログイン した後に、普通に、 https://www.aaaaaaa.com/bb の ページ を Navigate すればよいかと。。。。 Sheets("Sheet1").Range("A1").Value = objIE.document.body.innerHTML End Sub の前に objIE.Navigate "https://www.aaaaaaa.com/bb" Call wait_open(objIE) を入れてみられたらいかがでしょうか?
お礼
無事、移動出来ました。ありがとうごいました。
補足
移動は教えて頂いた方法で解決できましたが、htmlで保存ですが下記の場合だと objIE.document.body.innerHTMLで取得したものはファイル化出来ないのでしょうか? 空ファイルのみ作成されていました。 ご教授頂けませんでしょうか?お願い致します。 Sub test() Dim objIE As Object Dim URL01 As String Dim intFileNum As Integer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True URL01 = "https://www.aaaaaaa.com" ID01 = "△△△△△△△" PASS = "○○○○○○○" objIE.Navigate URL01 Call wait_open(objIE) 'form.id部分はサイトのソースに合わせる objIE.document.all.ID.Value = ID01 'form.password部分はサイトのソースに合わせる objIE.document.all.PASS.Value = PASS Call wait_open(objIE) 'form部分はサイトのソースに合わせる objIE.document.LOGIN.submit Call wait_open(objIE) objIE.Navigate "https://www.aaaaaaa.com/bb"" Call wait_open(objIE) strBody = objIE.document.body.innerHTML intFileNum = FreeFile strBody = InputBox("ファイル名を指定してください") If strBody <> "" Then strBody = strBody & ".html" Open strBody For Output As intFileNum Close #intFileNum End If Sub wait_open(objIE) Do While objIE.Busy Loop Do While objIE.document.ReadyState <> "complete" Loop End Sub
お礼
詳しく解説して頂きありがとうございました。 無事、ファイル化出来ました。 ありがとうございました。