エクセルでファイルサイズの大きいファイルを検索するボタンを作る方法

エクセル

あなたは使ってるPCのCドライブ(SSD、HDD)の使用容量がいっぱいになって、ファイルを消して整理したい!と思ったことはありませんか?

Cドライブの容量がいっぱいだと動作が遅くなったり、SSDの寿命が短くなったりなど、不都合が多いです。

ファイルサイズの大きいファイルで使っていないファイルとか、重複しているファイルを消せば、容量に余裕ができますよね。でも一つ一つフォルダをチェックしていくのは面倒です。

簡単に見つけられたらいいですよね。

エクセルのマクロを使えば、ファイルサイズの大きいファイルを簡単に検索できます。

今回は「エクセルでファイルサイズの大きいファイルを検索するボタンを作る方法」を紹介します。

エクセルでファイルサイズの大きいファイルを検索するボタンを作る方法

エクセルでファイルサイズの大きいファイルを検索するボタンを作る方法です。

Cドライブの容量に余裕を持たせていきます。

こんな感じでフォルダがたくさんあって、フォルダの中にフォルダがある状態で、1000MB(約1GB)以上のファイルを検索していきます。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

対象のフォルダパスを入力し、1000MB以上を検索することにしています。

5.ボタンができた →ボタンを押す

ボタンができたら、押しましょう。

6.ファイルサイズの大きい(1000MB以上)ファイルを検索し、フルパスを表示できた

ボタンを押すと、「完了しました」と出て、ファイルパスがリスト表示されます。

これで削除するなり、別のメディアに移動するなり対処できますね!

フォルダの中にあるフォルダ、さらにその中にあるフォルダなど、フォルダの階層を深堀して検索できるので、とても楽です。

まとめ

エクセルでファイルサイズの大きいファイルを検索するボタンを作る方法です。

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.新規作成をクリック

3.コードを入れる画面が出る

4.コードを入力

5.ボタンができた →ボタンを押す

6.ファイルサイズの大きい(1000MB以上)ファイルを検索し、フルパスを表示できた

これでファイル容量に余裕ができて、PC動作も軽くなりますね!

最後に赤枠部のコードです。

    Dim folderPath As String
    Dim fileSizeLimitMB As Double
    Dim rowIndex As Long

    ' 初期設定(ここを変更)
    folderPath = "C:\Users\***\Desktop\検索" ' ←対象フォルダのパスに変更
    fileSizeLimitMB = 1000 ' ←対象サイズ(MB)に変更

    ' 出力開始位置
    rowIndex = 2
    Sheets(1).Cells(1, 1).Value = "ファイルパス"
    Sheets(1).Cells(1, 2).Value = "サイズ(MB)"

    ' フォルダを走査
    Call SearchFolder(folderPath, fileSizeLimitMB, rowIndex)

    MsgBox "完了しました", vbInformation
End Sub

Sub SearchFolder(ByVal folderPath As String, ByVal fileSizeLimitMB As Double, ByRef rowIndex As Long)
    Dim fso As Object
    Dim folder As Object, subFolder As Object
    Dim file As Object

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)

    ' ファイルの走査
    For Each file In folder.Files
        If file.Size >= fileSizeLimitMB * 1024 * 1024 Then
            With Sheets(1)
                .Cells(rowIndex, 1).Value = file.Path
                .Cells(rowIndex, 2).Value = Round(file.Size / 1024 / 1024, 2)
            End With
            rowIndex = rowIndex + 1
        End If
    Next file

    ' サブフォルダの再帰的な走査
    For Each subFolder In folder.SubFolders
        Call SearchFolder(subFolder.Path, fileSizeLimitMB, rowIndex)
    Next subFolder

コメント

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