Es probable que los archivos que contienen macros presenten un cierto delay (tiempo extenso de ejecución) lo cual puede no ser del agrado de los programadores, así como de los usuarios. Es por esta razón que existen tips que permiten mejorar la velocidad de las macros empleadas.
En esta oportunidad se desarrollará la explicación sobre cómo mejorar la velocidad en una macro al usar la declaración para VBA: “application.displayalerts”.
Uno de los objetivos de las macros es simplificar acciones a realizar en los diversos programas en donde es posible ingresar códigos o programar, así como facilitar la experiencia de los usuarios al utilizar archivos que contengan códigos en VBA. Por ello, se podría esperar que al emplear macros se realicen acciones automáticas, sin que el usuario intervenga, pero muchas veces esto ocurre parcialmente, debido a que como parte de las acciones realizadas por la macro se generan cuadros de diálogos o mensajes que requieren la intervención directa de los usuarios de la macro para que esta pueda continuar su procedimiento. Esto puede generar pérdidas en cuanto a tiempo y por consiguiente dinero.
Lo anterior se ilustrará con los siguientes ejemplos:
Ejemplo 1:
En horario de trabajo se ejecuta una macro cuyo resultado será plasmado en un reporte que será presentado a la alta dirección; sin embargo, el encargado de generar dicho reporte es muy solicitado por sus demás compañeros y clientes, sumado a esto tiene mucho trabajo. Por lo cual ha desarrollado una macro que permita agilizar sus labores. Es así, que ejecuta la macro, pero instantes después recibe una llamada importante, la contesta y dedica toda su atención a ella; por consiguiente, descuida el seguimiento al archivo que paralelamente está ejecutando la macros.
Ejemplo 2:
Análogamente al ejemplo anterior, el usuario de cualquier archivo que ejecute macros podría querer dedicarse a otras actividades mientras que la macros se ejecuta, actividades como responder un correo, avanzar otro documento, navegar por la web o simplemente salir de su puesto de trabajo. Todo ello no será posible si la macros necesita que los usuarios confirmen ciertas acciones en el desarrollo de esta.
Luego de ilustrados en los ejemplos la dependencia de los usuarios, se comenta que es posible abolir esta relación macro-usuario, de modo que se obtengan todas las ventajas al respecto, las cuales fueron mencionadas anteriormente.
La forma de eliminar los mensajes de alerta es incluir en el código lo siguiente:
El programa Excel ejecutará las operaciones por defecto para este tipo de mensajes . En el caso de la eliminación de una hoja que contiene información si no se ha incluido el código “application.displayalerts” se mostrará el siguiente mensaje:
(Para mayor visualización de la imagen, hacer click en la misma)
Para este caso la operación por defecto es eliminar la hoja, por lo que no hay mayor inconveniente porque es exactamente lo que se requiere.
Si no se conoce a cabalidad cual es la operación por defecto, se recomienda realizar una prueba que le permita conocer cuál es.
Finalmente, cuando el procedimiento culmina Microsoft Excel cambia la propiedad displayalerts a su valor original: True. Si como parte de la macros se desea retornar a este valor antes de que el procedimiento termine, se deberá incluir la siguiente sentencia: