Hace tiempo que me pregunto si es indiferente el momento en que se declara cada variable dentro de una sub o función. Normalmente declaro las variables al comienzo del procedimiento, más que nada por verlas todas juntas, pero cada vez que hago esto se me plantea la siguiente cuestión: Si una variable de las declaradas sólo se usa cuando se cumple una determinada condición tal vez convendría declararla en el momento que se va a usar. Es decir, imaginaos un código de este estilo
     Dim lng1 as Long , lng2 as Long
     If Condicion Then
         lng1 = 111111
         Msgbox lng1
         Exit Sub
     Else
         Lng1 = 222222
         Lng2 = 333333
               .
               .
               .
     End If
Supongo que si defino las variables al principio automáticamente se asigna memoria para ellas. Sin embargo, si hago lo siguiente
     Dim lng1 as Long 
     If Condicion Then
         lng1 = 111111
         Msgbox lng1
         Exit Sub
     Else
         lng1 = 222222
         Dim lng2 as Long
         lng2 = 333333
               .
               .
               .
     End If
¿Si se cumple la condición me he ahorrado el espacio en memoria para lng2? Sospecho que realmente es así pero me gustaría confirmarlo.
Saludos a todos.