VB: パターンに合致するファイル名を配列で返す関数

Public Function FindFiles(ByVal Pattern As String) As String()
    
    Dim Names()     As String
    Dim Name        As String
    Dim Capacity    As Long
    Dim Max         As Long
    
    Capacity = 2
    Max = -1
    
    ReDim Names(Capacity)
        
    Name = Dir(Pattern)
    Do Until Name = ""
        Max = Max + 1
        
        If Max > Capacity Then
            Capacity = Fix(Capacity * 1.5)
            ReDim Preserve Names(Capacity)
        End If
        
        Names(Max) = Name
        
        Name = Dir()
    Loop
    
    If Max > -1 Then
        ReDim Preserve Names(Max)
    Else
        Names = Split("")
    End If
    
    FindFiles = Names
End Function

1.5 倍ペースで配列を拡張するのは Javajava.util.Vector のマネ。