0
Dim IE As New ShDocVW.InternetExplorer 
IE.Visible = True 
IE.Navigate("C:\Users\m0180kb\desktop\test.html") 
Do Until IE.Busy = False 
Loop 
IE.Document.All("testField").Value = "Testing" 'This line causes the error 
IE.Close 

を操作するとき、「アクセスが拒否されましたが、」エラーです:実行時エラー「-2147024891(80070005)」:アクセスが拒否されました。SHDOCVW.DLLのInternetExplorerオブジェクト - ここではローカルの.htmlファイルに

詳細情報:Excel VBAでコーディングが行われています。ファイルパスの代わりに有効なURLを使用すると動作します。ブラウザウィンドウにhtmlファイルが読み込まれると、InternetExplorerオブジェクトに関連付けられているすべてのオブジェクトとプロパティは、「アクセスが拒否されました」というエラーによって無用にレンダリングされます。

私は、テキストストリームを使って.htmlコードを生成することを考えました。それは私のフォームフィールドを操作することができますが、私はまだ.... ShDocVW.dllを介してHTMLフォームを提出する必要が....あなたは....それはアクセス拒否エラーの結果を推測した。

このエラーを回避する方法がわかっている場合や、Excelのvbaを使用してローカルのhtmlファイルを操作するためのアクセス権を与えるレジストリエントリまたはセキュリティ設定がわかっている場合にお知らせください。これは私

Option Explicit 

Sub Sample() 
    Dim IE As Object, ieDoc As Object 

    Set IE = CreateObject("InternetExplorer.Application") 

    IE.Visible = True 
    IE.Navigate ("C:\Users\m0180kb\desktop\test.html") 

    Do While IE.ReadyState <> 4: DoEvents: Loop 

    Set ieDoc = IE.Document 

    ieDoc.getElementById("testField").Value = "Testing" 

    'IE.quit 
End Sub 
+0

HTMLページの「アクティブコンテンツ」(スクリプトなど)はありますか? "ウェブのマーク"のためのGoogle - 多分それはあなたをここで助けるでしょう。例:http://www.markoftheweb.com/ –

+0

ウェブのマークはjavascriptを実行することを許可しましたが、それは私の主な問題ではありませんでした。良いヒントありがとう、ありがとう。しかし、私はまだ "アクセスが拒否されました"というエラーがあります。 –

答えて

0

私は問題が何であるかを考え出しました。コードやローカルコンピュータのセキュリティ設定とは関係ありません。

私のコンピュータの私の.htmlファイルには2つのフレームがあり、それぞれに異なるWebサイトがロードされています。これはクロスフレームスクリプティングと呼ばれる巨大なセキュリティリスクのため、vba、javascriptなどのスクリプト言語、またはmshtml.dllやshdocvw.dllを使用する他の言語は、2つのドメインがhtmlファイルに存在する場合は無効になります。

これを行う方法はありますが、結合している両方のWebサイトにコード行を追加する必要があります。本質的に、あなたがウェブページの所有者でない場合は、このコード行を追加することはできません。これにより、サイトの外部フレームスクリプティングから外部の人が守られます。

これは、私のテストがインターネット上で動作していた理由を説明していますが、私のローカルドライブ上のフレームを介して2つのドメインを結合したときはそうではありません。これを知って、私は私のアプローチを変更することができ、まだ許容できる解決策を考え出すことができます。

皆様ご提案いただきありがとうございます。とても有難い。

+0

シッダース、提案に感謝します。私はそれを試しましたが、同じエラーが発生します。私はすでに多くの異なるコード設定を試してきましたが、変数を宣言するためのさまざまな方法がありました。私はそれがオペレーティングシステムのどこかに埋め込まれた設定だと確信しています...コードではなく、それが問題です。 Windows XP sp 2とInternet Explorer 7が途中であります。 –

0

のために働く

おかげ

関連する問題