- 締切済み
Excel VBA Internet Explore コントロールのオートメーション操作でFrame内のボタンを押したい
標記の件、方法がわかりません。( Google等も一通り捜してはみましたが...... ) ご存知の方、教えてください。 IE.Document.All.hoge ..... ??? この後、どう記述したらよいのでしょうか? ( IE.Document.Body.InnerText、IE.Document.All.hoge.InnerText は問題なく取得できます ) IE.Document.All.hoge.hoge2.Click IE.Document.All.hoge.hoge2.submit IE.Document.All.hoge.submit IE.Document.All.hoge.hoge3 等々、思いつく記述はすべて試してみましたが、すべて実行時エラー'438 (「オブジェクトは、このプ....略」)となります。 自動メンバー表示、オブジェクトブラウザではユーザー定義のメンバーは表示されないので、お手上げです。 [使用環境] Windows 2000 Pro SP 最新 IE 6.0 最新 Excel 2000 SP 不明 HTML (抜粋) は下記の通りです。 [ parent.html ] <html> <head> <title>Title</title> <script language="javascript"> <!-- 略 --> </script> </head> <frameset frameborder="0" border="0" framespacing="0" rows=100%,60> <frame src="hoge.html" name="hoge"> </frameset> <noframes> (略) </noframes> </html> [ hoge.html ] <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>Title</title> <script language="javascript"> <!-- 略 --> </script> <noscript> (略) </noscript> <style>body { font-family:"MS ゴシック"}</style> </head> <body bgcolor="#FFFFDD" onload="hoge1()"> <form> <input type='button' value='クリック' name="hoge2" value="hoge2" onClick='hoge3()'> </form> </body> </html>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- todo36
- ベストアンサー率58% (728/1234)
call IE.Document.hoge.document.forms[0].hoge2.onClick() call IE.Document.hoge.hoge3()
補足
コメントありがとうございます。 ・・・せっかくコメント頂いたのに申し訳ないのですが、オートメーション (COM) による操作は断念して、別の方法を採り、解決しました。 (具体的には、hoge.htmlを修正し、Function hoge1() の中にhoge3()の実行を追記し、parent.htmlのロード時点でボタンクリック時と同等の処理が実行されるようにしました) なぜこのような小ムズカシイ処理に拘るのか、不可解に思われる人が多いと思いますので、その点だけ釈明(?)させて頂きます。 プログラムの目的はHTML上の文字情報をExcel化し、一覧表形式で管理することです。 (Excelのほうがデータの操作性、加工性に優れているのは周知の通りと思います。場合により、XMLという選択肢も考えられますが........) 静的なHTMLだけであればInnerTextを取得するだけの簡単な話なのですが、JavaScriptで動的に生成される文字情報を取得する方法がわからず、この質問となった次第です。 # 数が少なければ、手でボタンをクリックして、ブラウザの画面から手作業でコピペしたほうが手っ取り早い、という話もありますが......。 そんな訳で、コメント頂いた内容を検証する必要性は無くなってしまいましたが、時間があるときに試してみたいと思います。 (土曜日以降になると思いますが)