アプリ版:「スタンプのみでお礼する」機能のリリースについて

F5だとエラーにならないのに、F8でステップインするとエラーになる理由を教えてください。

わざとエラーを発生させているのですが、
Option Explicit
Sub test()
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Quit '敢えて閉じる
objIE.Navigate "http://www.ocn.ne.jp/"
End Sub

のコードを、F5で一気に実行するとエラーになりませんが、
F8で1行ずつ実行すると、
「実行時エラー'-2147417848(80010108)'
:オートメーションエラーです。
起動されたオブジェクトは、そのクライアントから切断されました。」
になります。

なぜF5だとエラーにならないのでしょうか?
それが不思議です。

A 回答 (1件)

どなたかから快刀乱麻を断つ回答が有るかと期待してROMしていたのですが


なさそうなので、怪しげな回答です。。。。
多分、微妙なタイミングのために起こっていると思います。
objIE.Quit
のすぐ後に追っかけで、Navigate してますので
Quitの処理が終わらないうちに Navigate が来ます。
なので、Quit処理 が破棄されてしまっているのかなと。

また、現象の発生度は、OS、Application、その時のCPUの使用率などなど
色々な要素が絡んできますので結果はマチマチかも?
当方 Win7 + Excel2010 + CPU暇状態 では
F5 でエラーにはならず、F8 では
462 リモート サーバーがないか、使用できる状態ではありません。
でした。

objIE.Quit の後に
DoEvents を加えると、F5でも、めでたくエラー発生。
-2147467259 'Navigate' メソッドは失敗しました: 'IWebBrowser2' オブジェクト
以上、まるっきり見当違いの「怪答」ではないとは思います。
(当たらずといえども遠からず・・・)

ついでに、逆のパターン。こちらのトラブルの方が多いかと。。。
Shell で呼び出したりとか、
Call SubA
Call SubB
・・・
の連続の場合に、処理が終わらないで次のステップが始まってしまう場合があります。
ステップ実行するとエラーにならないのに連続実行でエラーになってしまう・・
という時に、各ステップの終了判断して、
次のステップの実行に入るようにして行かないと問題になる場合があります。
それでは、良いお年を。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2013/01/12 11:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!