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関数で判断させた方が無難でしょう。



コメント