フレーム操作でアクセス拒否
未読分:7件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#7 2014年12月24日(水)23時24分 From: 佐藤 正樹 | 返事 削除 変更 |
管理人様 さっそく回答いただきありがとうございました。 元のIEの仕様に戻るかもとかすかな期待もありますが、待ってられないのでご教示いただいた方法で作り直してます。 とても助かりました。先ずはお礼まで |
Message#6 2014年12月24日(水)07時37分 From: 管理人 | 返事 削除 変更 |
フレームのURLを取得してから直接アクセスする方法も有効かもしれません。 Sub sample() Dim objIE As InternetExplorer Dim objFrame As Object Dim url As String 'テスト用フレームページを表示 Call ieView(objIE, "http://www.vba-ie.net/code/test2.html") url = objIE.document.getElementsByName("frame1")(0).src Call ieNavi(objIE, url) '名前のテキストボックスに値を入力 Call formText(objIE, "fullname", "田中太郎") 'パスワードボックスに値を入力 Call formText(objIE, "pass", "1234") 'テキストエリアに値を入力 Call formText(objIE, "textbox", "さわやかです。") End Sub |
Message#5 2014年12月23日(火)23時53分 From: 管理人 | 返事 削除 変更 |
こちらでも確認したところ、いつのまにかエラーになっていますね(汗) 記事をアップした際はうまくいっていたのですが・・・ 色々調べてみたのですが、行き着く先はIEのセキュリティ問題ばかりで解決策がありませんでした。 ちなみに、クロスドメインのアクセスエラーについて、記述しているサイトはあったのですが、こちらも対策はいまのところないようです。 http://www.macrogirls.net/iesamplecode/vbaie_day4_3.html http://homepage1.nifty.com/MADIA/vb/vb_bbs/200412/200412_04120067.html フレームオブジェクト自体は参照できていますが、同一ドメインでもなにかしらのセキュリティに引っかかっているようですね。 まだ、解決策はないですが、当面は取得したいフレーム上で右クリック→プロパティからURLを取得して、直接アクセスする方法で対応するのがよいかもしれません。 ■イミディエイトウィンドウでチェックした結果 ? objIE.document.body.outerhtml <frameset rows="50%,50%"> <frame name="frame1" src="http://www.vba-ie.net/code/test.html"> <frame name="frame2" src="http://www.vba-ie.net/code/ieview2.html"> </frameset> ? objFrame.length 2 |
Message#4 2014年12月23日(火)21時22分 From: 佐藤 正樹 | 返事 削除 変更 |
NMCさんへ 他にも同じ様なことで困っている方がおられたんですね。 情報が新しくて他では拾いきれませんでした。 貴重な情報ありがとうございます。 |
Message#3 2014年12月23日(火)14時14分 From: NMC | 返事 削除 変更 |
先週12月18日IE11,Win7が更新されました。 多分その影響であり、自分の環境でも全く同じ症状です。 http://support.microsoft.com/kb/875345/ja 従来は、上記のクロスドメインだけが問題だったと思いますが 今後は、クロスドメインでなくても、Frameの内容を アクセスできないのかもしれません。 残る手段は、今のところ、UserformでWebBrowser1を作成して これを使うしかないのかもしれません。 それにしても、MSも余計な更新をしてくれたものです。 この更新プログラムを削除したらよいのかも? 佐藤 正樹のメッセージ(#2)への返事 > 追加 > すいません。 > 当方の環境はInternet Explorer11,office2013,windows7です。 |
Message#2 2014年12月23日(火)12時16分 From: 佐藤 正樹 | 返事 削除 変更 |
追加 すいません。 当方の環境はInternet Explorer11,office2013,windows7です。 |
Message#1 2014年12月23日(火)11時45分 From: 佐藤 正樹 | 返事 削除 変更 |
いつもありがたく勉強させていただいております。 管理者様のご苦労に対し、まずは感謝申し上げます。 管理者様にはお手をおかけしますが、次のヒントをいただければ幸いです。 具体的には このサイト内のサンプルでフレームを指定する部分で次のエラーが発生します。 「実行時エラー’2147024891 アクセスが拒否されました」 例1: トップページ→エクセルVBAでHTMLフレームの基本操作→入力 フレーム処理のマクロ3 objFrame("frame1").document.getElementsByName("name")(0).Value = "田中太郎" 例2:トップページ→エクセルVBAでHTMLフレームの基本操作→選択 フレーム内フォーム選択のサブルーチン Set objFrameDoc = objFrame(i).document 等々です。 テスト用ページである""http://www.vba-ie.net/code/test2.html"内の2つのフレームは同じドメインであり、アクセス拒否の理由が思いあたりません。 どうかよろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降