Решение, к которому я обычно обращаюсь, заключается в изменении размера массива каждый раз, когда я добавляю в него новый элемент. Таким образом, в конечном массиве никогда не будет неиспользуемых записей.
ReDim aArray(-1)
For i = 1 To 10
ReDim Preserve aArray(UBound(aArray) + 1)
aArray(UBound(aArray)) = i
Next
MsgBox Join(aArray, "," & vbNewLine)
Другое решение, предложенное Карлосом, состоит в том, чтобы сделать это, используя объект Dictionary, который, вероятно, является более чистым решением:
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "Item1", ""
dic.Add "Item2", ""
dic.Add "Item3", ""
msgbox Join(dic.Keys, "," & vbNewLine)
Спасибо,
Maciej