I sometimes define dynamic arrays as follows
redim ary(-1 to -1) ' useful for "isempty" tests: if ubound(ary) = -1 then debug.print "it is empty"
But, I seem to remember that there are other conditions in which ubound can return minus one.
This is a vba questions, not a visual studio question. (visual studio help file describes a minus 1 return, but that is not helpful).