Массивы размещаются в непрерывной памяти. Следовательно, массив из 10000 элементов будет занимать в 10 раз больше памяти, чем тот, которому требуется 1000 элементов.
Вы можете начать с малого и увеличивать массив по мере необходимости. В прошлом я использовал этот класс для создания типа списка переменной длины.
Class List
Dim maItems
Dim mlCount
Public Sub Class_Initialize()
ReDim maItems(8)
mlCount = 0
End Sub
Public Function Add(Item)
If mlCount = UBound(maItems) ReDim Preserve maItems(mlCount * 2)
mlCount = mlCount + 1
maItems(mlCount) = Item
Add = mlCount
End Function
Public Property Get Item(Index)
If Index < 1 Or Index > mlCount Then Error.Raise 9, "List", "Subscript out of Range"
Item = maItems(Index)
End Property
Public Property Get Count()
Count = mlCount
End Property
End Class