IE操作のVBAでF8キーを使いステップイン編集すると異常終了するようになってしまいました。
ステップイン編集中、①でF8を押して②が反転した瞬間「MicrosoftExcelは動作を停止しました 問題を解決しています」のダイアログが出て終了してしまいます。
Sub IE起動()
Dim IE As Object
①Set IE = CreateObject("internetExplorer.application")
②IE.Visible = True
IE.navigate ("http://www.goo.ne.jp")
End Sub
ステップイン編集時のみ起こり、マクロボタンを作ってそこから実行すると普通に実行できます。
つい最近までは普通に編集できていました。症状に気付いたのは昨日からです。
環境はwindows7、EXCEL2013、IE11です。
どなたか対処法をご存知でしょうか。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#1の回答者です。
>通過する瞬間、異常終了してしまいます。F5キーや実行ボタンでは普通に動作します。
おそらく、セキュリティのどこかに触れているのだろうと思います。
試してみると、こちらでは、エラーが出る場合とそうでない場合がありますが、私の場合は、いわば通過儀礼の部分をステップで追うということはしませんし、例えば、Active X コントロールをステップインするのと同じで、エラーは出ても、オートメーション・オブジェクトを生成する段階で、割り込みを入れてエラーが出ることに、あまり疑問を持ったことがありません。
ステップイン(F8)と、実行(run)との違いは、前者はインタープリタ型で、後者は、コンパイル(P-code)されていますから、ステップインとは必ずしも仕様自体が同じではありません。
ここ何度か、IE は、バージョンを挙げたようで、Microsoft 側では、さかんに、Microsoft Edge を使ってほしいような様子です。しかし、Edge をVBAで本格的に使うには、Selenium VBAを利用するということになりますが、思った以上に情報が豊富ではありません。
私の場合は、ステップインをする場合は、IEオブジェクトの横取りの方が多いと思います。そうしないと、IEオブジェクトだらけになってしまいます。(.Visible = True なら手動で終わらせますがキリがないですからね)
つまり、開いているIE画面からIEオブジェクトを、ShellWin
Set objShellWin = CreateObject("Shell.Application").Windows()
取って、それから、操作をするということです。単純に、そのobjShellWinから、IE オブジェクトを引き出してもよいのですが、複数のIEオブジェクトから目的のオブジェクトを取り出すには、テクニックが必要だと思います。
大変詳しい解説をありがとうございます。
お話が高度すぎて半分も理解できていないのですが、
>いわば通過儀礼の部分をステップで追うということはしませんし
これを参考に、エラーが出るコードの後ろにブレイクを作り、実行ボタンでブレイクまで進んでしまって、そこからステップインで動作確認という流れでなんとかしようと思います。(自分はまだ動作確認しながらでないとコードが書けない)
IEオブジェクトの使いまわしや開放のお話も大変参考になりました。
セキュリティも確認しておらず根本は解決していないのですが、とりあえず急場は凌げそうです。いろいろとご親切にありがとうございました。
No.1
- 回答日時:
私の最近のマクロは、インターネットアクセスが中心ですが、
'//
Dim objIE As SHDocVw.InternetExplorer '参照設定済みInternet Controls
Dim strURL As String
Set objIE = New ShDocVw.InternetExplorer
strURL ="https://oshiete.goo.ne.jp/articles/qa/2817/"
'----Set in
objIE.Navigate2 strURL 'Navigate だと、単独になる
objIE.Visible = True 'なしでも可能
Do While objIE.Busy Or objIE.ReadyState <> 4: DoEvents: Loop
'-----Set out
'//
'●
このように、Set in - Set out は常に崩さないことです。ただし、Do - Loop間でエラーが発生した時のために、DoEvents は、ESC で抜けるために入っています。
本格的には、参照設定で、Internet Controls を使ったほうが安全です。
もし、ステップインにするなら、安定化した後●に、ブレークポイントを入れてくたさい。
ShDocVw.InternetExplorer は、古い書き方ですが、安定しているような気がします。
すぐにご回答いただきありがとうございます。
先に結論を書きますと、上記のマクロをコピーペーストしてステップインで実行しましても3行目、
Set objIE = New ShDocVw.InternetExplorer
を通過する瞬間、異常終了してしまいます。F5キーや実行ボタンでは普通に動作します。
Internet Controlsの参照設定は忘れており、ご指摘後に参照設定しました(汗)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel2010 VBAが特定動作で実行出来なくなる 7 2022/12/29 14:26
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(パソコン・周辺機器) EXCELで「WEBオプションの対象ブラウザ」を変更する方法 2 2023/04/12 15:44
- Chrome(クローム) グーグルクロムをマイクロソフト・エッジに切り替える方法 2 2022/06/20 10:08
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルのVBAの標準モジュール...
-
PowerPointVBAでスライドマスタ...
-
[VBA]CDOメッセージ送信エラー
-
VBScriptでExcelのグラフを貼り...
-
VBAからPDFファイルにパスワー...
-
オブジェクトが見つかりません
-
VBA:オートシェイプの線の長...
-
Excel VBA グラフを任意sheetに...
-
sheetsメソッドの失敗
-
テキストボックス中の文字列の...
-
上下の位置揃えについて
-
EXCEL VBA オートシェイプナン...
-
VBScriptからDLL参照設定したい
-
TXTファイルをMDBファイ...
-
AccessからOutlookを立上げファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
PowerPointVBAでスライドマスタ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ある文字列が全て数字であるか...
-
VBAについてです。 初心者です...
-
VBScriptでファイルの日時順(降...
-
Excelでフィルタをかけると警告...
-
VBAからPDFファイルにパスワー...
-
VBで引数にDictionaryオブジェ...
-
このように書くべきですか? { ...
-
EXCEL VBA オートシェイプナン...
-
テキストボックス中の文字列の...
-
エクセルVBAでcode128のバー...
-
[VBA]CDOメッセージ送信エラー
-
オブジェクトが見つかりません
おすすめ情報