VBATips

全てのフォルダ(エクスプローラー)を閉じる【Shell関数】【ExcelVBA】

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

関連記事

コメント

タイトルとURLをコピーしました