📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルをバックグラウンドで非表示にする方法

日々の業務では、大量のファイルやフォルダを管理することが多いと思います。その中で、特定のフォルダ内の全ファイルを一括で非表示に設定したい場合があります。この記事では、Excel VBAを使用して簡単にバックグラウンドで全てのファイルを非表示にする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub HideFilesInFolder()
    Dim fso As Object, folder As Object, file As Object
    Dim folderPath As String
    
    ' フォルダパスを指定
    folderPath = "C:\Users\UserName\Documents\TargetFolder"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)
    
    Application.ScreenUpdating = False ' 画面更新停止
    For Each file In folder.Files
        If Not (file.Name Like "*~" Or file.Name Like "*.*") Then ' テンポラリファイルや隠しファイルは対象外
            fso.SetAttr file.Path, vbHidden ' 非表示に設定
        End If
    Next file
    
    Application.ScreenUpdating = True ' 画面更新再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
フォルダパスやファイル名が正しいか確認してください。