- 締切済み
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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
objDOC.Links(18).Click が、フレーム内でのリンクである(target="_top"がない)場合に、ExecWBでのコピーが正しく動作しないことが分かりました。リンク後、フレームが分割されていることが原因のようです。 手抜きですが、次のようにフレームを指定してコマンドを投げれば正しく動作しました。 objDOC.Links(18).Click IE_Complete objIE objIE.document.frames(0).document.execCommand "selectall" objIE.document.frames(0).document.execCommand "copy" 参考になれば。
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
IE_Completeがドキュメントの読み込みを待つメソッドであるのなら objDOC.Links(18).Click の後にも IE_Complete objIE を入れてみてはいかがでしょう。
補足
ご回答ありがとう御座います。 IE_Complete objIE 入れてみましたがだめでした。 何か他にきずいたこと御座いましたら 教えてください。