Navegando el modelo de objetos

Navegando el modelo de objetos

Excel tiene un modelo de objetos el cual es una jerarquía de todos los objetos que podemos utilizar desde el lenguaje VBA. En la parte superior de la jerarquía se encuentra el objeto Application y todos los demás objetos estarán por debajo de él.

Acceder a objetos inferiores

Para tener acceso a los objetos que están por debajo del objeto Application podemos utilizar el punto. El punto nos ayuda a navegar por la jerarquía hacia un nivel inferior. Observa lo que se muestra en el Editor de Visual Basic al colocar un punto después del objeto Application:

Objeto Application en VBA

Por ejemplo, si deseamos poner en negritas el texto de la celda A1 debemos llegar al objeto Range el cual nos dará acceso a modificar la propiedad Bold de la siguiente manera:

Jerarquía de objetos para la propiedad Bold de una celda

Aunque esta línea de código puede tomarnos un poco de tiempo en escribirla, pero describe por completo la jerarquía de los objetos.

Objetos predeterminados

Existe una funcionalidad intrínseca de VBA conocida como objetos predeterminados la cual nos permite omitir la escritura de algunos objetos y aun así tener un código funcional. Por ejemplo, en la sentencia mostrada previamente podemos omitir el objeto Application y tener nuestro código funcionando correctamente:

Omitir el objeto Application

Inclusive podemos omitir los objetos ActiveWorkbook y ActiveSheet sabiendo que el código se ejecutará siempre sobre el libro activo y la hoja que esté activa al momento de la ejecución:

Omitir el objeto ActiveWorkbook y el objeto ActiveSheet

Referencias completas a objetos

A algunas personas les gusta utilizar las referencias completas a los objetos, es decir, especificar toda la ruta completa hasta llegar al objeto deseado. Una razón para hacer esto es porque da una claridad absoluta sobre la ubicación exacta de cada objeto lo cual ayudará a evitar cualquier mala interpretación del código.

Si decides no hacer uso de los objetos predeterminados sino que deseas utilizar las referencias completas hacia cada objeto aún hay una manera de ahorrar algunas líneas de código. Supongamos las siguientes instrucciones en VBA:

Grupo de referencias completas en VBA

Podemos ahorrar algunas palabras de este código haciendo uso del bloque With de la siguiente manera.

Referencias completas utilizando el bloque With

En ambos casos el resultado será el mismo y en el último ahorraremos algunos caracteres dejando nuestro código VBA claro y legible.