Excel VBAでIEを操作し値を取得する方法

このQ&Aのポイント
  • Excel VBAでIEを操作し値を取得する方法について調査しました。
  • 通常のボタン操作やテキストボックスの値を取得することはできますが、インラインフレーム(iframe)内の値を取得する方法がわかりません。
  • 参考のページにあるHTMLのソースコードを一部抜粋し、問題の内容を示しました。
回答を見る
  • ベストアンサー

Excel VBAでIEを操作し値を取得する方法

こん色々調査したのですが分からないのでお教えください。 EXCELのVBAにてIEを操作しているのですが 通常のボタン操作やテキストボックスの値を取得するのは 出来ています。 しかし「インラインフレーム(iframe)」内の値を取得する方法が 分かりません。 どなたかお分かりの方はいますでしょうか? 念のため参考のページ内のソースを一部抜粋させていただきます。 <html> <head> <title>SAMPLE</title> </head> <body> <iframe width="400" height="400" src="http://www.yahoo.co.jp"></iframe> </body> </html>

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

>No.1 この回答への補足 iframeタグのsrcを取得、それをNavigateすればどうでしょうか。 と提案したのですが、、、 Set objIE = CreateObject("InternetExplorer.application") With objIE .Navigate .document.getElementsByTagName("iframe")(0).src End With srcがhttpから始まっていない場合は内部リンクだそうで頭が必要です。 (srcがhttpから始まっているかどうか調べる必要ありですね) .Navigate "http://○○○/" & .document.getElementsByTagName("iframe")(0).src

sasa_hata
質問者

お礼

こんにちは。 返信遅くなりました。 前回のアドバイスを理解していなく申し訳ありません。 新たにお教えいただいたソースを参考に作成出来ました。 大変助かりました。 ありがとうございました。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

src属性のリンク先URLをNavigateして表示されたページから取るようにすればどうでしょうか。

sasa_hata
質問者

補足

こんばんは。 返答が遅くなり申し訳ありません。 また、例のソースがあまり良くなく折角回答を頂いたのですが 実際のソースはphpにて作成されたフォームよりpost methodを使用して 可変のデータを送信し、その返答が同じ画面に戻りiframeにて表示される 作りとなっています。 例のソースが悪くて申し訳ありません。

関連するQ&A

  • インラインフレームでpdfファイルを出すhtmlを作りました。

    インラインフレームでpdfファイルを出すhtmlを作りました。 pdfの拡大・縮小率をhtmlで制御したいのですが、やり方を教えてもらえますでしょうか? <TITLE>サンプル</TITLE> </HEAD> <BODY> <IFRAME src="あ.pdf" width="500" height="500"> このページはインラインフレームを使用しています。</IFRAME> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • インラインフレームの縦幅を、ブラウザ・画面・解像度に合わせて、自動的に調節させたいけど、IEとOperaで上手くいきません;;

    現在ホームページを制作中で、初めてインラインフレームを使って制作しています。 まず下記のように、インラインフレームのみで試してみたら、IE7・Opera・FireFox・GoogleChromeで上手く自動的に調節できました。 <html> <head> </head> <body> <div> <iframe src="frame_test.html" allowtransparency="true" frameborder="0" width="600" height="80%"></iframe> </div> </body> </html> 次に、インラインフレームの周りに、下記のように画像やリンクバナーなどを配置させました。 <html> <head> </head> <body> <div><img src="" width="50" height="600"></div> <div><img src="" width="150" height="600"></div> <div> <iframe src="frame_test.html" allowtransparency="true" frameborder="0" width="600" height="80%"></iframe> </div> </body> </html> これも予定通り、IE7・Opera・FireFox・GoogleChromeで上手く自動的に調節できました。 次に、下記のようにそれぞれをフロートさせて配置させてみました。 <html> <head> </head> <body> <div style="float:left;"><img src="" width="50" height="600"></div> <div style="float:left;"><img src="" width="150" height="600"></div> <div style="float:left;"> <iframe src="frame_test.html" allowtransparency="true" frameborder="0" width="600" height="80%"></iframe> </div> </body> </html> すると、FireFox・GoogleChromeでは上手くいったのですが、IE7・Operaでインラインフレームの縦幅が100pxくらいに短くなってしまい、調節もできなくなってしまいました。 それぞれを配置させるのにフロートは必要なので、どうすればよいか分からなくて困っています。 何が原因で、どうすれば上手くいくか分かる方、どうかアドバイスをお願いします。

  • htmlからiframeされないようにする設定

    htmlでiframeされないようにする設定 htmlでWEBページを作成していて偶然気付いたのですが、iframeでgoogleを指定しても表示されません。 iframe先をまだ作っていなかった為、ダミーで埋め込んで気付きました。 yahoo!など他のサイトでは表示されます。 そこで思ったのが、自分のサイトが知らないところで他のhtmlのiframeに納まっているなんてことは滅多にある事ではないが、あったら気持ち悪い。念のため止められるなら止めておきたい。 googleのように他のhtmlからiframeで呼び出せないようにするには、どのような設定が必要なのでしょうか。 <html> <head> <title>テスト</title> </head> <body> google<br> <iframe src="http://www.google.co.jp/" height="768" width="1024">google</iframe><br> <br> YAHOO!<br> <iframe src="http://www.yahoo.co.jp/" height="768" width="1024">YAHOO!</iframe><br> <br> </body> </html>

    • ベストアンサー
    • HTML
  • インラインフレームの表示方法

    少し前からホームページを作成しようとしているのですが、 テーブル内にインラインフレームを入れたところ、safariでインラインフレームが表示されませんでした。 これはsafari自体の使用のせいなのでしょうか? それとも私のsafariの設定の問題なのでしょうか? ちなみにIEやOperaだと正常に表示されます HTMLを抜粋すると <HTML> <HEAD> <TITLE>テスト</TITLE> </HEAD> <BODY> <table border="1" style="width:100%;height:100%;" cellpadding="5" cellspacing="0"> <tr><td> <div style="top:0px;left:50px;" > <table align="right"width="100%" height="100%"><tr><td> <iframe src="home.html" name="main-window" frameborder="0"width="100%" height="100%" scrolling="out"><p>インラインフレームを使用しています。見るにはインラインフレームをサポートしているブラウザが必要です。</p></iframe> </td></tr></table></div> </td></tr> </table> </BODY> </HTML> となっています。 本来はページを上下3段に分け真ん中の段にインラインフレームを入れようとしています。 どうかお力添えをお願いします。

    • ベストアンサー
    • Mac
  • <iframe>タグが正常に動作しない

    下記HTMLを作成した場合、タグが正常に作動しません。 wikiのページに何か細工があるようですがどういった仕掛けが入っているのでしょうか? また、これを正常に表示させる方法はありますか? ご存知の方、教えてください。 宜しくお願い致します。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <IFRAME src="http://ja.wikipedia.org/" width="900" height="1500"></IFRAME> <HR> <IFRAME src="http://yahoo.co.jp" width="900" height="1500"></IFRAME> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • javascriptを無効にする方法~<iframe>タグが正常に動作しない~

    下記、HTMLを作成したのですが、wikipediaのjavascript?によって、折角開いた、yahooのページもwikipediaにとって変わられてしまいます。 wikipediaのjavascriptを無効にする方法は無いでしょうか?若しくは、こういったjavascriptを見つけた時、強制的に、排除する方法など無いでしょうかね? 折角開いたページが、こういったjavascriptがあることで全て強制的に飛ばされてとても困っています。 宜しくお願い致します。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <IFRAME src="http://ja.wikipedia.org/" width="900" height="1500"></IFRAME> <HR> <IFRAME src="http://yahoo.co.jp" width="900" height="1500"></IFRAME> </BODY> </HTML>

  • perlで同時呼び出しができない

    現在、さくらインターネットを使っていますが、 PHPの同時呼び出しができず困っています。 iframeで5つのPHP画面を呼び出しているのですがうまくいきません。 内部に、同時アクセス禁止?の設定でもあるのではないかと思っています。 そこで、これを何とか回避する方法は無いでしょうか? 何か、これを克服した型はおられないでしょうか? 宜しくお願い致します。 <iframe src="sample/iframe_q.php?q=1" width="200" height="150"> <iframe src="sample/iframe_q.php?q=2" width="200" height="150"> <iframe src="sample/iframe_q.php?q=3" width="200" height="150"> <iframe src="sample/iframe_q.php?q=4" width="200" height="150"> <iframe src="sample/iframe_q.php?q=5" width="200" height="150">

    • ベストアンサー
    • CGI
  • <iframe>内にHTMLをランダム表示するには?

    かなりの素人なので説明不足などで分かりづらいところが多々あると思いますが、 何卒宜しくお願い致します。 同じhtmlに複数のiframeがあるのですが、 その全てのiframeをランダムにしたいのですが、 あまりの素人なので全く分かりません。 申し訳ありませんが、 多少いじってコピペするくらいまでのソースを教えて頂けますでしょうか? 宜しくお願い致します。 iframe一つだけのランダムは以下のソースでできました。 <head> <script type="text/javascript"> <!-- function RndmSubFlame(){ rlURL= new Array(); rlURL[0]="01.html" rlURL[1]="02.html" rlURL[2]="03.html" n=rlURL.length; x=Math.floor(Math.random()*n); sub_flame.location.href = rlURL[x]; } //--> </script> </head> <body TopMargin=0 LeftMargin=0 RightMargin=0 BottomMargin=0 STYLE="overflow:auto;height:100%;" onLoad="RndmOpen()"> <script><!-- document.write("<iframe src=\""+riURL[x]+"\"></iframe>"); //--> </body> 以下のhtmlのようなページです。 できましたら、このソースに書き加え頂けますと 大変助かります。 宜しくお願い致します。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title></title> </head> <body> <table border="1" width="84%" height="87"> <tr> <td width="33%" height="81"><iframe src="a01.html" frameborder="0" width="100%" height="190" name="01" scrolling="no"></iframe></td> <td width="33%" height="81"><iframe src="a01.html" frameborder="0" width="100%" height="190" name="02" scrolling="no"></iframe></td> <td width="34%" height="81"><iframe src="a01.html" frameborder="0" width="100%" height="190" name="03" scrolling="no"></iframe></td> </tr> </table> </body> </html>

  • Iframeとして呼び出すページを120px以下を表示したい

    Iframeを使いたいのですが、A.htmlの高さ120pixから下をIframeで指定したいときはどうしたらいいでしょうか。 <html> <head> <title>testtitle> </head> <body> <div width:100%; height:120px;> <table> <tr> <td><iframe src="A.htm" width="100%" height="100%" frameborder="0" scrolling="no" overflow:no></iframe><td> </tr> </table> </div> </body> </html> 呼び出すIframeの中身のページについて 高さを120pix以下を表示したいのですが。 よろしくおねがします。

  • インラインフレームで表示されるページのタイトルを取得したい。

    よろしくお願いします。 インラインフレームを利用したWebページを作成しています。 FLASHでボタンつくったボタンをクリックすると、 インラインフレームの中の表示が切り替わるようになっています。 そこで、どうしてもそのインラインフレームに表示される ページのタイトルとファイル名を取得したいのですが、 何かよい方法はないでしょうか? <div id="contents"> <iframe src="sample.html" name="frame" width="800" height="600" frameborder="0"> インラインフレーム機能を使用しています。インラインフレーム対応のブラウザで試してください(*´∀`) </iframe> </div> リンク先は、FLASHのボタンにつくっています。 インラインフレームの表示内容がが切り替わった時に、 sample.html ⇒ hoge.html hoge.htmlのタイトル名とファイル名を親フレームから 呼びだしたいと思っています。 よろしくお願いします。

専門家に質問してみよう