Las variables no declaradas en VB 6 quedan definidas como "Variant" que es un tipo de memoria que puede almacenar casi cualquier tipo de dato, pero a costa de un desperdicio de memoria considerable.
Por eso SIEMPRE hay que declarar las variables, sinó sucede que nos olvidamos si esa variable había sido declarada, usamos cualquier nombre que VB considera que es una variable y el programa empieza a tener errores que son muy difíciles de encontrar.
Para "configurar" VB para que nos obligue a declarar variables hay que poner la opción "Option Explicit" al principio del código.
O sinó Visual Basic puede hacerlo solo, si se lo indicas en las opciones del proyecto...
Menú Tools, solapa Environment, opción: Require Variable Declaration.
La ventaja: que si te equivocas al escribir una variable, ¿a quién no le ha ocurrido?, VB te indicará que no existe.
La desventaja: Que tienes que declarar todas las variables con Dim, etc.
Ahora sabes que si no declarás una variable, y no estás usando la orden "Option Explicit", Visual Basic le asigna por defecto el tipo Variant y la crea si no existe. Con los arrays, crea los valores de 0 a 10.
Por tanto puede que incluso estés desperdiciando memoria:
1. Variant ocupa más espacio de memoria que cualquier otro tipo
2. Puede que sólo necesites un array de 5 elementos, el resto que no necesitas, está ocupando memoria que puede ser necesaria para otras cosas: velocidad, más variables, etc.