フレーム操作でアクセス拒否

最近の書き込み件数: 今日 0件、昨日 0件
未読分:7件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

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つのフレームは同じドメインであり、アクセス拒否の理由が思いあたりません。
どうかよろしくお願いします。

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com