2016-11-16 10 views
1

時々私はまだウィンドウが存在していても非表示にするコマンドie.visible = Falseを使用します。すべての非表示/非表示のウィンドウを終了

隠しウィンドウをすべて閉じるにはどうしたらいいですか?

私の実際の解決策は、コンピュータのセッションからログアウトしてもう一度ログインすることです。これを行うには、おそらくもっと良い方法があります。

私はSet ie = Nothingまたはie.Quitを試みたが、私は

Set objShell = CreateObject("Shell.Application") 
    IE_count = objShell.Windows.Count 

でそれらを数えるとき、彼らはまだそこにあるので、それは隠されたウィンドウには影響を与えません。

これを行う方法に関するアイデアはありますか?

答えて

1

私は開いているInternet Explorerのウィンドウの前と後のカウントと、以下のコードが動作するようです隠されたInternet Explorerのウィンドウのカップルを作成しました:

Public Sub CLOSE_HIDDEN_IE() 

    Dim IE As SHDocVw.InternetExplorer 
    Dim SH As SHDocVw.ShellWindows 

    Set SH = New SHDocVw.ShellWindows 

    For Each IE In SH 
    If IE.Visible = False Then 
     IE.Quit 
    End If 
    Next 

    Set IE = Nothing 
    Set SH = Nothing 

End Sub 

コードが開いているInternet Explorerのウィンドウをループ表示されていないものを閉じます。

何か必要な場合はお気軽にお問い合わせください。

+0

はい、それは実際にはとても明らかです!奇妙なことは、一度にすべてを閉じるわけではないということです。私は、このコードを正しい番号に達する前に数回実行しなければならないということを意味しますが、これはちょっとしたものです。ありがとう !あなたはこの線に沿って何かを試みることができる – Seb

+0

: 'ながら今()<時間+ 0.00005 SH.Count <> SH の各IEについては0 ながらIE.Visible = Falseを次に IE.Quit 終了した場合これは5秒間または 'sh.count = 0.' – Nulled

+0

もののまでスクリプトを実行します 次 Wendの Wend'場合は、心のVBAでのクマは、マルチスレッドをサポートしていないため、5秒にする必要があります何かをする前にパスしてください。思考のための食糧としてそれを言いました。お力になれて、嬉しいです。 – Nulled

関連する問題