プロが教えるわが家の防犯対策術!

タスクマネージャーのアプリケーションタグにて、
右クリックでタスク終了する操作をエクセルVBAで行いたいのですが可能でしょうか?


VBAでWebBrowserを使ってネットにアクセスし、データを取得しているのですが、
たまに「スクリプトエラー」が出て中断してしまいます。
スクリプトエラー画面で「はい」もしくは「いいえ」ボタンをマウスでクリックすれば次に進みますが、
とりあえず、VBAで強制的に画面を消して中断しないようにしたいのです。

スクリプトエラーの消し方を調べてIEの設定をいじっては見たのですが、
たまに発生する傾向は変わりませんでした。
スクリプトエラーはタスクマネージャーのアプリケーションタグには表示されます。
(プロセスタグには表示されません。)
ネット検索してみると、プロセス終了はありましたが、タスク終了に相当するものは
見つけられませんでした。
なお、ネット検索でAPIのEnumWindows関数を使ってアプリケーションタグに表示されているものの取得までは
わかりましたが、終了させる操作はわかりませんでした。

A 回答 (2件)

WebBrowserなら(※)、APIのタイマー( SetTimer )を回しっぱなしにして、コールバック( TimerProc )でそのダイアログのハンドルを得られたならWM_CLOSEメッセージを送信など。


※ IEだとタイマー事止まる可能性もあるので。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ないです。

とても勉強になりました。SetTimerでウォッチドッグのようなことができるんですね。知らなかったのでエクセル以外にvbスクリプトを回してやってました。

スクリプトエラーは、とりあえずワードのvba機能を借りる手法で回避できそうなのでこれでやってみます。
TimerProcも余裕のあるときにトライしてみます。
ありがとうございました。

お礼日時:2013/07/07 10:28

この方面はとんとわからないのですが、Word VBAにはTasksコレクションとかTaskオブジェクトとかいうものがあって、それにはアプリケーションを終了させる機能もあるらしいです。



参考URL:http://officetanaka.net/excel/vba/tips/tips61.htm
    • good
    • 0
この回答へのお礼

Word VBA機能については僕も検索でヒットしたので知ってはいたのです。今回とは別に必要があって使ってもいます。ただ、Wordをわざわざ起動するので処理が少し鈍くなり、できれば他の手法を取れればと思っていたのです。
しかし、僕もAPIやWMIなどは良く分からないので、Word VBAでやるのが分かりやすくて手っ取り早いなと思い始めてました。
回答ありがとうございました。
また、返事が遅くなりすみませんでした。

お礼日時:2013/07/07 10:36

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

このQ&Aを見た人はこんなQ&Aも見ています