【ExcelVBA】あるフォルダに保存されているCSVファイルのリストを配列で返すオリジナル関数

プログラムの概要

  • 任意のフォルダに保存されているCSVファイルのファイル名のリストを文字列の配列で返します

VBAコード

'fdPathフォルダ内にあるCSVファイルのファイル名リストを配列で返す
'fdPathはフルパスの文字列 例:C:\Users\保存版\2022
Function getCSVList(fdPath As String) As String()

    Dim FSO As Object
    Dim f As Variant
    Dim csvNames() As String
    Dim cnt As Long, i As Long
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    For Each f In FSO.GetFolder(fdPath).Files
    
        If LCase(FSO.GetExtensionName(f.Name)) = "csv" Then
            cnt = cnt + 1
            ReDim Preserve csvNames(cnt)
            csvNames(cnt) = f.Name
        End If
    
    Next f
    
    If cnt = 0 Then
        ReDim Preserve csvNames(1)
        csvNames(0) = "NoCSV"
    End If
    
    getCSVList = csvNames
    
    Set FSO = Nothing

End Function
'関数を呼び出すときはこんな感じ
Sub testgetcsvlist()
    Dim arr() As String
    arr = getCSVList("C:\Users\保存版\2022")  
    '配列arrに「C:\Users\保存版\2022」というフォルダ内に保存されているCSVファイルの名前のリストが入る

    Debug.Print arr(3)
    
End Sub

コメント

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