📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを部分一致で非表示にする方法

日々の業務では大量のファイルやフォルダを管理する必要がありますが、その中から特定の条件に一致するものを一括で非表示にすることは手作業では大変です。この記事では、VBAを使用して特定の文字列を持つファイルを非表示にする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub HideFilesWithPartialMatch()
    Dim fso As Object, folder As Object, file As Object
    Dim targetFolder As String, partialMatchText As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' 対象フォルダのパスを指定
    targetFolder = "C:\Users\User\Documents"
    ' 部分一致する文字列を指定
    partialMatchText = "example"
    Application.ScreenUpdating = False
    For Each folder In fso.GetFolder(targetFolder).SubFolders
        For Each file In folder.Files
            If InStr(1, file.Name, partialMatchText) > 0 Then
                ' ファイルを非表示にする(Windows Explorerでのみ有効)
                file.Attributes = file.Attributes + 3
            End If
        Next file
    Next folder
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、フォルダパスが正しく指定されているかも確認してください。