見出し画像

ExcelVBA〜フォルダ内のファイル一覧を取得〜

いつもありがとうございます。ナカマサです。
今回は「フォルダ内のファイルを取得するVBA」を作成しましたので共有します。

需要があるのか謎、、、
きっと必要としている人もいるはず!笑

今回はこんな感じで進めていきます。



使用方法

※「マクロを有効」にして使用してください。

①シート右側のボタンをクリックすることで、フォルダを選択するダイアログが表示されます。

②ファイル名を取得したいフォルダを選択します。

③選択したフォルダ内のファイル一覧がExcelに入力されます。


プログラム内容

Sub Get_FileList()

    Dim FSO As New FileSystemObject  'ファイルシステムオブジェクト
    Dim Files As Files 'Filesオブジェクト
    Dim File As File 'Fileオブジェクト
    
    Dim Fol_path As String 'フォルダのパス
    Dim row_num As Long 'データを書き込む行数
    
    'フォルダを選択するダイアログを表示
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "フォルダを選択してください"
        If .Show = True Then
            Fol_path = .SelectedItems(1)
        Else
            'フォルダが選択されていない場合は処理を終了。
            MsgBox "フォルダが選択されていません。"
            Exit Sub
        End If
    End With
    
    row_num = 2
    
    'Filesオブジェクトを取得
    Set Files = FSO.GetFolder(Fol_path).Files
    
    'シートを初期化
    Sheets(1).Range("A2:C10000") = ""
    
    'FilesオブジェクトからFileオブジェクトを一つずつ取り出して処理
    For Each File In Files
        Sheets(1).Cells(row_num, 1) = File.Name
        Sheets(1).Cells(row_num, 2) = File.Type
        Sheets(1).Cells(row_num, 3) = File.DateLastModified
        row_num = row_num + 1
    Next
    
    MsgBox "処理が完了しました"
    
    'オブジェクト解放
    Set File = Nothing
    Set Files = Nothing
    Set FSO = Nothing
    
End Sub

参照設定(別のExcelで上記プログラムを使用する場合)

※FileSystemObjectを使用しますので、「Alt+F11」を押して以下の画面を表示し参照設定を行ってください。


どうだったでしょうか?
少しでも皆様の参考になっていれば幸いです。

「もっとこういうのを作ってほしい!」というのがあればコメント欄に入れていただけると嬉しいです!

今回はこの辺で!ではまた!

この記事が気に入ったらサポートをしてみませんか?