Yo también utilizo este tipo de redimensión. En principio la tienes correctamente declarada en el encabezamiento; Evidentemente no está dimensionada y por lo tanto al no tener contenido te puede devolver Nothing pero a veces produce un error (No comprendo el porqué)
Yo lo que hago es lo siguiente
Código:
dim minbound as long, maxbound as long
'Activamos la lliberación genérica de error
On local error resume next
minbound = lbound(miarray)
maxbound=ubound(miarray)
if err then
redim miarray(1 to 1)
minbound = 1 : maxbound = 1
end if
'Desactivamos el resume next si no nos gusta.
on local error goto 0
on local error goto lineerror
Puede no ser demasiado ortodoxo, pero funciona.