ray88’s diary

お仕事で困ったとき用の自分用の覚書

VBA 指定したフォルダ内のファイル名を取得する

■指定したフォルダパスのフォルダ内のファイルを取得し、ファイルパスを配列で返す
呼び出し元プロシージャ

Sub TestGetArray()

    Dim arrayFiles() As String
    Dim strFolderPath As String
    Dim i As Integer
    
    strFolderPath = "C:\デスクトップ\テスト"
    
    arrayFiles = getFileArray(strFolderPath)
    
    For i = 0 To UBound(arrayFiles)
        Debug.Print arrayFiles(i)
    Next

End Sub

Function プロシージャ

Function getFileArray(strFolderPath As String) As String()
'----------------------------------------------------------
'機能  :指定したフォルダパスのフォルダ内のファイルを取得する
'引数1 :対象フォルダパス
'戻り値 :取得したファイル名を配列で返す
'----------------------------------------------------------

Dim FSO As Object
Dim tmpFile As Object
Dim objFiles As Object
Dim intFilesCount
Dim arrayFiles() As String
Dim i As Integer

    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set objFiles = FSO.GetFolder(strFolderPath).Files
    intFilesCount = objFiles.Count
    
    i = 0
    ReDim arrayFiles(intFilesCount - 1)
    
    With FSO.GetFolder(strFolderPath)
        For Each tmpFile In .Files
            arrayFiles(i) = tmpFile.Name
            i = i + 1
        Next
    End With    
    getFileArray = arrayFiles()
End Function

f:id:ray88:20210228171555p:plain
ray88.hatenablog.com