Shell関数でフォルダを開く記事へのアクセス数が多いです。
アクセスの中には「フォルダ 全て 閉じる vba」といったキーワードから来られている方もいるようです。
その為、本記事ではすべてのフォルダ(エクスプローラー)を閉じる方法をお伝えします。
Shell関数で全てのフォルダを閉じる方法
Public Sub sample() Dim sShell As Object Set sShell = CreateObject("Shell.Application") Dim sWindow As Object '■Shell関数ですべてのウィンドウに対してチェック For Each sWindow In sShell.Windows If (InStr(TypeName(sWindow.document), "IShellFolderView") > 0) Then sWindow.Quit End If Next End Sub
注意点
- 対象のWindowがフォルダ(エクスプローラー)だった場合、
TypeName(sWindow.document)でWindows10だとIShellFolderViewDual3を取得し、
Instr関数で「IShellFolderView」が存在するかチェックしています。 - WindowsXPでは「IShellFolderViewDual2」だったようなので、
今後も考えると、Instr関数で判断させた方が無難でしょう。
コメント