Seleccionar objetos con VBA

La mayoría de los objetos en Excel tienen un método para seleccionarlos. Sin embargo el 99% de las ocasiones no es necesario ni indispensable seleccionar un objeto para poder trabajar con él. Supongamos las siguientes líneas de código VBA:

Seleccionar objetos con VBA

Este código es ineficiente ya que no es necesario seleccionar una celda en VBA para asignarle una fórmula. La propiedad Fórmula del objeto funciona muy bien cuando se usa directamente con el objeto Range sin la necesidad de seleccionar el objeto previamente.

Seleccionar un objeto con VBA en Excel

Porqué no seleccionar un objeto

Una de las razones por las cuales no debemos seleccionar siempre un objeto antes de utilizarlo es porque poco a poco irás agregando líneas de código que tomarán tiempo de procesamiento del equipo haciendo tu código más lento de ejecutar.

Y aunque tal vez sean milisegundos, pero cada vez que pides a Excel que realice una selección de un objeto debe responder a varias preguntas ¿Es una celda? ¿Es un rango? ¿Es un gráfico? Y cada milésima de segundo empleada en estas instrucciones aumenta el tiempo de procesamiento.

Otra razón es por la legibilidad del código ya que cuando se tienen cientos o miles de líneas de código se necesita una mayor compresión del mismo para realizar alguna modificación o mejoría. Si nos ahorrarnos las líneas de código de selección cuando no son necesarias se reducirá el número de líneas y nos ayudará a entender mejor nuestro código.

¿Cuándo debemos seleccionar un objeto?

Existen ocasiones en las que definitivamente tenemos que seleccionar un objeto. Por ejemplo, cuando se limpia el contenido de una rango de celdas con una macro y posteriormente se debe seleccionar la primera celda para que el usuario inicie la captura de la información. Pero realmente son pocas veces las que necesitamos hacer una acción de este tipo.

Sin embargo, aquellas ocasiones en las que necesites hacer la selección de un objeto solamente debes tener cuidado con un error que se comete frecuentemente al iniciar en la programación VBA y que es querer seleccionar un objeto de una hoja que no es la activa. Por ejemplo, el siguiente código siempre nos dará un error:

Seleccionar objetos en VBA con método Select

Trabajar con la selección

En algunas ocasiones en lugar de seleccionar algo desde código VBA deseas trabajar con la selección que el usuario ha realizado previamente en Excel y para ello podemos utilizar el objeto Selection. Si deseamos cambiar el color de la fuente a las celdas que ha seleccionado el usuario podemos utilizar el siguiente código VBA:

Seleccionar un objeto con VBA

Cuidemos nuestras prácticas de programación en VBA y evitemos agregar líneas de código a nuestras macros que no son necesarias y de esa manera mejoraremos la legibilidad del código y su tiempo de procesamiento.

Artículos relacionados
Programando en VBA