Internet Explorerのプロセスを終了する意味
Excel VBAマクロでIE操作していると、IEのプロセスが残ってしまうことがあります。
残ってしまうと、VBA側からInternet Explorerを起動できない現象発生します。
■現象
・IEの画面自体立ち上がらない。(目視で確認ができない)
・IEの画面は立ち上がったが、指定したホームページが表示されない。
・IEの画面は立ち上がったが、blankの状態(白いページが表示)のまま。
・IEの画面自体立ち上がらない。(目視で確認ができない)
・IEの画面は立ち上がったが、指定したホームページが表示されない。
・IEの画面は立ち上がったが、blankの状態(白いページが表示)のまま。
こちらパソコンの環境によって不具合出る、出ないもある為、厄介な部分です。
上記現象が起きれば、プログラムのコードは正しい。IEのプロセスが邪魔していると考えていいです。
上記現象が起きれば、プログラムのコードは正しい。IEのプロセスが邪魔していると考えていいです。
プロセスが残っているか確認する方法
WIndowsのタスクマネージャー(タスクバーで右クリック→タスクマネージャー)で確認ができます。
IEが立ち上がっていないにもかかわらず、バックグラウンドプロセスに「iexplore.exe」が存在していれば、
プロセスが残っている状態です。(動作が不安定になる可能性があります)
Internet Explorerのプロセスを終了する方法
Public Sub Call_IE_TaskKill() Dim obj As Object Set obj = CreateObject("WScript.Shell") obj.Exec ("taskkill.exe /F /IM iexplore.exe") End Sub
「taskkill.exe」は、プロセスを終了させる実行ファイル(exe)です。
「taskkill.exe」で、Internet Explorerのプロセスを強制終了(タスクキル)させます。
「taskkill.exe」で、Internet Explorerのプロセスを強制終了(タスクキル)させます。
taskkillのオプション | |
/F | アプリケーションの終了 |
/IM | 終了させるアプリケーションの名称 |
VBAでIE操作の不安定なパソコンの場合は、IE起動する前に一度、プロセスを終了するようにしましょう。
これによって、安定性が高まります。
仮にchromeを終了する場合は以下。
obj.Exec ("taskkill.exe /F /IM chrome.exe")
注意点
実際は以下のような動きを行います。
↓ コマンドプロンプトの黒い画面が表示
↓ 終了コマンドを実行
↓ コマンドプロンプトの黒い画面が消える
↓ 終了コマンドを実行
↓ コマンドプロンプトの黒い画面が消える
- プロセス終了するのに10秒~30秒程度時間がかかる為、その点認識する必要があります。
- 端末によってはこの処理を入れる事で安定しない場合もある為、必ずしも優秀な処理ではないと理解しましょう。(95%はこの処理入れた方が安全ですが・・・)
コメント
[…] 違う方法をとります。VBA Create 「VBAでIE操作「Internet Explorerのプロセスを強制終了」する」 […]