[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでのIE操作について』(ゆう)
お世話になっております。掲題の件について、
Navigate以外でIEのオブジェクトにページ情報を代入する方法が知りたいのですが、調べても出で来ず…ご教授頂けますと幸いです。
Do Until i > UBound(dataList, 1)
If dataList(i, 7) <> "‐" Then 1…htmlDoc.getElementsByName("dspSBCD")(0).Value = dataList(i, 1) htmlDoc.getElementsByName("DCCD")(0).Value = dataList(i, 7) downloadB.Click…1 linkFlg = 0 Do 2…Sleep 10000 Set objIE2 = Nothing Set objIE2 = CreateObject("Internetexplorer.Application") openUrl = "" objIE2.Visible = True objIE2.navigate openUrl For Each obj In objIE2.document.getElementsByTagName("a") If obj.innerHTML = "csv" Then linkFlg = 1 Exit For End If Next If linkFlg = 1 Then obj.Click…2 Exit Do End If Loop End If i = i + 1 Loop
上記コードは、
?@あるページ内のフォームに情報を入力し、ボタンを押す。
小窓のページが別ウィンドウで表示される。
?A小窓ページ内にリンクされたCSVを開く。
という流れになっています。その中で、?@でボタンを押して出てきたページのHTMLドキュメントを読込みたいのですが、上記のようにNavigateしてからだと、ページの仕様上外部アクセスとなり、正しくページが表示されません。
そのため、現在開いているページからHTMLドキュメントを読込み、ボタンやリンク等の操作をしたいのですが、探しても見つかりません。
何か良い方法はありますでしょうか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
返信ありがとうございます。
Documentを取得しても、フォームのあるページの情報が取得されてしまいます。
フォーム送信で新たに開いた別ウィンドウのHTMLはどういう風に取得すればいいのでしょうか。
(ゆう) 2018/01/26(金) 14:31
JavaScriptダイアログならば、私はその中を調べる術を知らないのですが、別IEであれば、ボタンを押す前にプロセス名が「iexplore.exe」なものを全て取得しておき、ボタン押下後(別画面表示後)に再び「iexplore.exe」を取得することで、1つ増えたIEが目的の小窓だ、という事が判ります。ここからウィンドウハンドルを得る事もできますが、Documentまで辿り着けるかまでは自信なしです…。
小窓が別IEであり、徹底解析する意思がおありでしたら、プロセス名のチェックには「CreateObject("WbemScripting.SWbemLocator")」あたりをキーワードに調べてみてください。(問題のURLが判らないし、おそらく公開できる場所ではないでしょうから、私が試す訳にはいかないのです。ウィンドウハンドル表示までなら書けますが、それでもちょっと大変…)
(???) 2018/01/26(金) 17:25
Sub test() Dim IE As Object
For Each IE In CreateObject("Shell.Application").Windows If IE.Name = "Internet Explorer" Then If IE.Document.Title Like "Google*" Then Exit For End If End If Next
If IE Is Nothing Then MsgBox "見つかりません" Else MsgBox IE.LocationURL, , IE.Document.all.Length End If End Sub (???) 2018/01/26(金) 18:16
沢山の助言を頂いたのに、お返事がこんなに遅くなってしまって申し訳ありません。
別窓は、見たところツールバーなどの表示が省略された、簡単なIEウィンドウのようです。
???さんの仰る通り、セキュリティの観点からURLは限られたネットワークでのみ機能するようで、私でも個人の環境で試すことは難しいです。(それがもどかしい…)
ただやはりHTMLの内容と実際の挙動を見る限りでは、別IEだと思われるので、???さんに提示頂いた
・iexplore.exeの数の比較で特定していく方法
・Shell.Application オブジェクトのタイトルを調べる方法
・既に開いているIEオブジェクトから特定していく方法
を、自分で理解し易いor確実に取得出来ることを軸に試行していこうと思います。
とても丁寧に、また幾つかキーワードも教えて頂いたので、以前に比べ大分道が開けました。
本当にありがとうございました。
(ゆう) 2018/01/29(月) 10:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.