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:

Navegando el modelo de objetos

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 en VBA

Aunque esta línea de código puede tomarnos un poco de tiempo en escribirla, describe perfectamente la jerarquía de los objetos en VBA ya que después de acceder el objeto de la aplicación (Application), le seguirá el objeto del libro de trabajo activo (ActiveWorkbook) y posteriormente el objeto de la hoja activa (ActiveSheet) para finalmente llegar al objeto del rango de celdas (Range) y modificar la propiedad Bold de la Fuente.

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:

El modelo de objetos de Excel en VBA

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:

Modelo de objetos VBA

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:

Modelo de objetos en Excel

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

Información sobre el modelo de objetos en Excel VBA

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