オートメーションエラーの解決方法

このQ&Aのポイント
  • オートメーションエラーが発生しました。社内のURLにアクセスするとエラーが起きます。
  • 社内のURLの拡張子はaspxです。ウォッチウインドウでobjIEをウォッチ式に登録すると、objIE.navigateを過ぎるとオートメーションエラーが発生します。
  • 社内のシステムでプロタクトがかかっている可能性があります。
回答を見る
  • ベストアンサー

オートメーション エラーです

win7 エクセル2010です。 ************************************************* Dim objIE As InternetExplorer Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://www.goo.ne.jp/" Call wait1 Set objIE = Nothing End Sub ************************************************* Sub wait1() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.readyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub ************************************************* だと うまく行きますが、 URLの部分の社内のURLにすると 実行時エラー-2147417848(80010108) 「オートメーションエラーです。起動されたオブジェクトはクライアントから切断されました」 になります。 社内のURLの拡張子は、aspxです。 ウォッチウインドウでobjIEをウォッチ式に登録すると objIE.navigate を過ぎると 中身が、<オートメーション エラーです。> になります。 これは社内のシステムの方でプロタクトがかかっているのでしょうか?

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

  • ベストアンサー
  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.1

サイト側もそうですが、IE側にも理由があります。 IE10以降で使えるIInternetExplorerManagerの方を試されるとか。

参考URL:
https://gist.github.com/kumatti1/6b68ea65fdfc9ecf727f
SRYSCQTIGM
質問者

お礼

ありがとうございました。

関連するQ&A

  • https:/○○login.php エラーになる

    win7 32ビット オフィス2010です。 https:/○○login.php のようなサイトを開こうとすると ------------------------------------------------------ Dim objIE As InternetExplorer Sub test() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https:/○○login.php" Call WaitIE1(objIE) End Sub ------------------------------------------------------ Function WaitIE1(objIE As InternetExplorer) Do While objIE.Busy = True DoEvents Loop Do While objIE.Document.ReadyState <> "complete" DoEvents Loop End Function ------------------------------------------------------ このコードがエラーになります。 Do While objIE.Document.ReadyState <> "complete" の部分で 実行時エラ― -2147417848 オートメーションエラーです。 起動されたオブジェクトはクライアントから切断されました。 となります。 objIEをウォッチ式に登録してみてみると Function WaitIE1(objIE As InternetExplorer) の時に、「変数なし」となっています。 objIE.Navigate http://www.goo.ne.jp/ にすれば、 エラーにならずに、コードが最後まで行きます。 ウォッチ式を見ても 「変数なし」にはなりません。 この違いは何でしょうか?

  • これは何がおかしいですか?

    こんばんは。 会社のWEBアプリを開くコードなのですがエラーになります。 Dim objIE As Object Sub webアプリ() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://○○.aspx" Call IE_wait End Sub Sub IE_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub こうすると、 Do Until objIE.ReadyState = READYSTATE_COMPLETE の部分で、 --------------------------- 実行時エラー-2147417848 もしくは 実行時エラー-2147023179 オートメーションエラーです。 そのインターフェイスは認識されません。 --------------------------- になります。 最初に実行時エラー-2147417848になり、デバッグボタンを押すと 実行時エラー-2147023179に変化します。 Dim objIE As Object を Dim objIE As InternetExplorer にしてもエラーが発生します。 しかし、 objIE.Navigate "https://○○.aspx" を objIE.Navigate http://www.goo.ne.jp/ にすると、エラーは発生しません。 https://○○.aspxは存在するアドレスです。 問題なく表示はされています。 表示するまで待たせて次のコードを書きたいので、表示するまで待つ処理をしたいです。 ご教授よろしくお願いします。

  • ie操作 ローカルパスだとエラーになる

    ヤフーなら問題なくコードが動くのに、URLがローカルのパスだと、エラーになってしまいます。 具体的には、 *********************************************************** Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.yahoo.co.jp/" objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub *********************************************************** だと、問題なく実行されるのに、 *********************************************************** Sub Sample2() strFName = MyDesktop & "\index.html" Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate strFName objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub ------------------------- Function MyDesktop() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function *********************************************************** だと、 Do Until objIE.ReadyState = 4 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか?

  • ie操作 2回目のwaitが無視される

    FC2にログインし、アクセス解析のページを開きたいのですが Dim objIE As InternetExplorer Sub test() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://fc2.com/login.php" Call wait objIE.document.all("email").Value = "test@yahoo.co.jp" objIE.document.all("pass").Value = "test" objIE.document.all.Item("Image").Click Call wait 'ここが無視される!!! objIE.navigate "http://analyzer.fc2.com/" End Sub Sub wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.readyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub このコードだとうまくいきません。 このコードをF5で実行すると、エラーにはならないのですが、 objIE.navigate "http://analyzer.fc2.com/" ができてません。 objIE.navigate "http://analyzer.fc2.com/"の部分にブレークポイントを設置し、 ログイン後の画面がちゃんと表示されたことを確認して、 objIE.navigate "http://analyzer.fc2.com/"に進むと、 objIE.navigate "http://analyzer.fc2.com/"が無視され、 http://analyzer.fc2.com/のページに移りません。 同じ条件なのに、 objIE.navigate "http://analyzer.fc2.com/"の部分にブレークポイントを設置し、 ログイン後の画面がちゃんと表示されたことを確認して、 objIE.navigate "http://analyzer.fc2.com/"に進むと、 実行時エラー -2147024726のオートメーションエラーになることがあります。 どうやったら、2回目のwaitが無視されずに進みますか? ログインされると http://fc2.com/login.php から http://id.fc2.com/?login=done へURLが変わりますが objIEをウォッチウィンドウで見てると、ずっとhttp://fc2.com/login.phpのままです。 環境:win8.1/エクセル2010

  • vba IE操作 教えてgoo マイページ

    賃貸・タウン情報の「Q&A広場」 で教えてgooを使っているのですが 2個目のie_waitが機能しないというか意味がない状態になります。 ********************************************************** Sub test() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://hiroba.chintai.net/login?return_url=http%3A%2F%2Fhiroba.chintai.net%2Fmypage#tabs" Call ie_wait '1個目 objIE.Document.all("mailaddress").Value = "あああ" objIE.Document.all.Password.Value = "1111" objIE.Document.all.login_skip.Click objIE.Document.Forms(1).submit Call ie_wait '2個目 End Sub -------------------------------------------------- Sub ie_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub ********************************************************** 二個目のie_waitは、 ie_waitの操作が完了しないのに次のコードへ進んでしまいます。 一個目のie_waitは、 objIE.Navigate "http://hiroba.chintai.net/login?return_url=http%3A%2F%2Fhiroba.chintai.net%2Fmypage#tabs" が表示さえるのを待つコードですが、 objIE.Document.Forms(1).submitでログインして、マイページが表示されるまで待つには、 どのようなコードを入れればいいのでしょうか?

  • 表示されるまで待たせたい

    vbaでieの操作をしているのですが Sub マクロ1() Do While ObjIE.Busy = True DoEvents Loop End Sub でも Sub マクロ2() Const READYSTATE_COMPLETE As Long = 4 Do Until ObjIE.ReadyState = READYSTATE_COMPLETE Loop End Sub でも、 表示される前に次のコードへ進んでしまって エラーになってしまいます。 表示されるまで待たせるには Application.Wait (Now + TimeValue("00:00:03")) を付け足すしかないのでしょうか? (できればこれは使いたくないです) ご教授よろしくお願い致します。

  • 現在表示されているURLを取得したいのですが

    Sub test1() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.goo.ne.jp/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Navigate Set objIE = Nothing End Sub //////////////////////////////////////////////// をやろうとすると、 Debug.Print objIE.Navigate の部分で、「引数は省略できません。」とエラーになります。 どう修正すればいいか教えてください。 ("http://www.goo.ne.jp/"はダミーです)

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

  • DoEvents

    VBSでDoEventsは使えないのでしょうか? *************************** Dim ObjIE dim i Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "http://oshiete.goo.ne.jp/" ObjIE.Visible = True Do While ObjIE.Busy = True DoEvents Loop Do While ObjIE.Document.ReadyState <> "complete" DoEvents Loop Set ObjIE = Nothing *************************** だと、エラーになりました。 Wscript.sleep 3000 ならエラーにならずにコードは動きました。 VBAならDoEventsは使えるのに VBSで使えない理由を教えてください。

  • 無限ループ VBA IE操作

    VBAです。 とあるサイトで Sub IE_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.readyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub が無限ループに陥ります。 中断して Exit Sub を入れてみましたが、抜けれません。 ページは既に表示済みです。 なぜ無限ループが抜けられないのか、 なぜページが表示されているのにこのコードが繰り返されるのか 何かわかる方よろしくお願いします。

専門家に質問してみよう