Volver al blog
Cómo hacer · · 10 min de lectura

Más allá de la grabación: condiciones, bucles y variables en scripts

Las macros que graban y reproducen operaciones son la forma más sencilla de automatizar tareas repetitivas. Sin embargo, una macro grabada tiene una característica fundamental: «hace exactamente lo mismo cada vez». En el trabajo real hay muchas decisiones que exigen cambiar el comportamiento según la situación, como «si no quedan existencias, hacer un pedido» o «si el total supera el presupuesto, mostrar una advertencia». La grabación por sí sola no puede gestionar estas decisiones.

Aquí es donde entran en juego los «scripts». Permiten incorporar a la automatización elementos básicos de programación, como las condiciones («si… entonces…»), los bucles (repeticiones) y las variables (contenedores que guardan valores). La palabra «programación» puede intimidar, pero estos elementos simplemente dan forma a decisiones cotidianas y su planteamiento no es difícil. Este artículo explica claramente los tres pilares de los scripts como siguiente paso después de la grabación.

Condiciones (IF/ELSE): hacer que tome decisiones

Una condición es un mecanismo que «ejecuta un proceso específico solo cuando se cumple determinada condición». El bloque IF ejecuta su contenido únicamente si la condición es verdadera, mientras que ELSE se ocupa de los demás casos. Por ejemplo: «Si aparece la palabra “Error” en la pantalla, avisar al responsable; de lo contrario, continuar directamente con el siguiente paso».

Como condición se puede usar un valor mostrado en la pantalla, el color de un píxel concreto o un número guardado en una variable. Las personas realizan de forma inconsciente toda una secuencia: «mirar la pantalla, evaluar la situación y decidir la siguiente acción». Las condiciones sirven precisamente para incorporar esa toma de decisiones a la automatización. Una vez escritas, el ordenador decidirá correctamente por usted en cada ejecución.

Bucles (LOOP): hacer que repita operaciones

Un bucle es un mecanismo que repite varias veces el mismo proceso. Se parece a especificar el «número de reproducciones» de una macro, pero los bucles de los scripts son mucho más flexibles. Además de indicar una cantidad concreta, como «repetir 10 veces», permiten repetir según la situación: «hasta que no queden filas en la lista» o «hasta que se cumpla una condición determinada».

El verdadero valor de los bucles se aprecia al manejar grandes cantidades de datos. Basta con envolver el proceso «tratar un dato» en un bucle para convertirlo en «tratar todos los datos de la lista». Tanto si hay 100 como 1000 elementos, solo se escribe el proceso correspondiente a uno; el bucle recorre automáticamente todos los demás. Una tarea manual que llevaría horas solo tiene que escribirse una vez y, después, basta con esperar. Este es el punto en el que la automatización deja de ahorrar «minutos» y empieza a ahorrar «horas».

Variables: recordar valores

Una variable es una «caja» que permite guardar temporalmente un valor durante un proceso. Un contador (por qué iteración se va), un nombre de archivo, un valor numérico leído de la pantalla o un resultado intermedio de un cálculo: si estos valores se almacenan en variables, pueden reutilizarse en pasos posteriores. Por ejemplo, un proceso como «leer el valor de una celda en una variable y, si supera los 10.000, copiarlo en otra hoja» se consigue combinando variables y bifurcaciones condicionales.

Cuando se combinan variables, bifurcaciones condicionales y bucles, las posibilidades de la automatización se amplían enormemente. «Leer datos (variables), cambiar el procesamiento según su contenido (bifurcaciones condicionales) y aplicarlo a todos los elementos (bucles)»: solo con esta combinación se puede cubrir buena parte del trabajo real. Aquí se encuentra la puerta de entrada a la «automatización inteligente» que no estaba al alcance de la simple grabación y reproducción.

Crear una «automatización que no se detenga» mediante la gestión de errores

Una vez que se haya familiarizado con las bifurcaciones condicionales, los bucles y las variables, lo siguiente que debe aprender es la «gestión de errores». Cuando una automatización se utiliza durante mucho tiempo, siempre surgen imprevistos: la red se desconecta por un instante, no aparece el archivo que debía abrirse o la pantalla se muestra de forma distinta a la habitual. Ante estas situaciones, un script que no esté preparado se detendrá por completo. Si se ejecuta sin supervisión durante la noche, el trabajo podría quedar paralizado hasta la mañana siguiente.

Aquí es donde resulta útil el mecanismo de gestión de errores TRY/CATCH. Permite crear un flujo en el que, aunque se produzca un fallo dentro del bloque TRY, no se detenga todo el proceso, sino que se pase a las acciones escritas en el bloque CATCH, como registrar el error, enviar una notificación u omitir solo ese elemento y continuar con el siguiente. Así se obtiene una automatización robusta que procesa hasta el final todos los elementos restantes, aunque uno falle. En otras palabras, se enseña al script a responder como lo haría una persona de manera natural: «Aunque algo falle, registrarlo y seguir adelante».

Conocer los comandos SCR más utilizados

Los scripts SCR de makuroku incluyen los comandos que se utilizan con frecuencia en el trabajo real. No es necesario aprenderlos todos de una vez, pero saber qué se puede hacer con ellos ayuda a ampliar las ideas y pensar: «Esto también podría automatizarse». Veamos algunos de los comandos más representativos.

  • FIND_IMAGE / WAIT_IMAGE: buscar elementos en la pantalla mediante imágenes o esperar a que aparezcan
  • IF / ELSE / LOOP: bifurcaciones condicionales y repeticiones
  • SET / ADD / SUB: asignación de valores a variables y cálculos
  • READ_FILE / WRITE_FILE: lectura y escritura de archivos
  • HTTP_GET / POST: comunicación con servicios externos
  • NOTIFY / PROMPT: mostrar notificaciones y solicitar datos al usuario

Al combinar estas funciones, se pueden crear automatizaciones avanzadas que están muy lejos del alcance de una simple grabación, como «leer datos de un archivo, cambiar el procesamiento según determinadas condiciones, enviar el resultado a un servicio externo y notificar que ha terminado». Además, la función de cada comando es sencilla, por lo que no resultan difíciles de aprender. Basta con ampliar poco a poco el repertorio, empezando por los comandos que se necesiten.

Ejemplos de automatización que se pueden realizar con scripts

Al combinar condiciones, bucles, variables y gestión de errores, se pueden crear automatizaciones que están muy lejos del alcance de una simple grabación. Veamos algunos ejemplos concretos. Pensemos, por ejemplo, en la tarea de «abrir uno a uno todos los archivos de una carpeta, comprobar su contenido y mover a otra carpeta solo los que cumplan determinadas condiciones». Se puede realizar recorriendo todos los archivos mediante un bucle y clasificándolos con condiciones. Una clasificación que llevaría una hora manualmente puede completarse en pocos minutos una vez escrito el script.

Otro ejemplo es la tarea de supervisión que consiste en «obtener periódicamente datos de un sitio web, compararlos con el valor anterior y enviar una notificación si hay algún cambio», algo para lo que los scripts resultan especialmente adecuados. Los datos se obtienen mediante comunicación HTTP, se comparan con el valor anterior guardado en una variable y una condición activa la notificación cuando detecta un cambio. Si se combina con una ejecución programada, se obtiene un sistema de supervisión que no deja escapar ningún cambio sin que usted tenga que hacer nada.

Este tipo de automatización puede parecer difícil a primera vista, pero cada uno de sus elementos —bucles, condiciones, variables, comunicación y notificaciones— es sencillo. Lo difícil es «entenderlo todo de una vez», no «combinar cada elemento uno a uno». Puede empezar solo con las condiciones, continuar únicamente con los bucles e ir ampliando poco a poco sus conocimientos a partir de los elementos que necesite. Antes de darse cuenta, podrá crear por sí mismo automatizaciones bastante avanzadas.

Lo importante es no aspirar desde el principio a crear un script perfecto. Cree primero una versión mínima que funcione, ejecútela y vaya corrigiendo poco a poco las partes que no funcionen bien. makuroku cuenta con una función de depuración que resalta en tiempo real la línea que se está ejecutando, por lo que puede mejorar el script mientras comprueba visualmente «dónde está y qué está ocurriendo en ese momento». Probar, corregir y volver a probar: esta repetición es el camino más rápido para dominar los scripts.

Consejos para mantener los scripts legibles

Un script no queda terminado para siempre después de escribirlo, sino que a menudo se revisa y modifica más adelante. Por eso, prestar atención a la «legibilidad» mientras lo escribe le facilitará mucho las cosas en el futuro. Hay varios consejos útiles. En primer lugar, asigne nombres descriptivos a las variables. En lugar de «x» o «a», use nombres como «importe total» o «nombre del archivo de destino», que permitan saber qué contienen. Así podrá entender de inmediato la intención del proceso cuando vuelva a leer el script.

A continuación, añada comentarios a cada bloque de procesamiento. Incluso notas breves como «obtener los datos a partir de aquí» o «comprobar el importe aquí» facilitan el seguimiento del flujo general del script. También resulta útil dividir los procesos complejos en varios scripts pequeños. Un conjunto de scripts cortos separados por función es más fácil de modificar y reutilizar que un único script enorme. El secreto para crear scripts duraderos es escribirlos pensando: «¿Podrá entenderlos mi yo del futuro?»

Cómo depurar scripts

Al escribir scripts, es inevitable que alguna vez no funcionen como esperaba. El proceso de determinar la causa sin perder la calma se denomina «depuración». La base de la depuración consiste en delimitar «hasta dónde funciona correctamente y a partir de qué punto se desvía de lo esperado». makuroku dispone de una función que resalta en tiempo real la línea en ejecución y de una salida PRINT que muestra los valores intermedios en la pantalla. De este modo, puede buscar la causa mientras comprueba visualmente «dónde está y qué está ocurriendo».

Para depurar de forma eficaz, primero hay que dividir el proceso en partes pequeñas y comprobar su funcionamiento una por una. Si intentas terminarlo todo de una vez, será difícil saber dónde se produce el problema. Escribe poco a poco, ejecuta el script con frecuencia y avanza solo después de confirmar que funciona correctamente. Esta repetición constante acaba siendo la forma más rápida y segura de crear scripts. Aunque aparezca un error, la depuración no da miedo si lo consideras una pista que te indica «qué debes corregir».

Orden recomendado para aprender scripting

Veamos un orden orientativo para aprender los distintos elementos de un script. Lo primero que conviene dominar son, sin duda, las bifurcaciones condicionales (IF/ELSE). Las decisiones del tipo «si ocurre esto» son la base de cualquier automatización. Después vienen los bucles (LOOP). El procesamiento repetitivo resulta enormemente eficaz cuando se manejan grandes cantidades de datos. Con solo aprender a usar estos dos elementos, podrás automatizar muchas tareas que no se podían resolver mediante una simple grabación.

El siguiente paso son las variables. El mecanismo para guardar valores permite crear procesos más flexibles al combinarlo con condiciones y bucles. Cuando hayas llegado hasta aquí, aprende el manejo de errores (TRY/CATCH). Para mantener una operación desatendida durante mucho tiempo, es imprescindible contar con un mecanismo que no se detenga aunque se produzca un fallo a mitad del proceso. Por último, bastará con aprender, a medida que los necesites, comandos especializados según tu objetivo, como la manipulación de archivos, la comunicación HTTP o el OCR.

Lo importante es no intentar aprenderlo todo de una sola vez. Cuando, durante el trabajo real, pienses «sería útil poder hacer esto», busca la función correspondiente y pruébala. Este estilo de «aprender por necesidad» es, al final, el que mejor permite asimilar los conocimientos. En lugar de leer un manual de principio a fin, desarrollarás habilidades más prácticas si automatizas las tareas que tienes delante y aprendes en cada momento los elementos que necesitas.

Aunque los scripts puedan parecer difíciles a primera vista, cada uno de sus elementos es sencillo y podrás dominarlos si los aprendes paso a paso. Una vez que lo hagas, el abanico de tareas que podrás automatizar se ampliará drásticamente. Empieza con una grabación y da tu primer paso en el mundo del scripting añadiéndole una sola condición.

Pasar de la grabación al script sin dificultades

Quienes piensan que «los scripts parecen difíciles» deberían saber, ante todo, que no es necesario escribirlos partiendo de una página en blanco. En makuroku, primero puedes grabar las operaciones mediante la GUI y después convertir la macro en un script SCR editable. Es decir, desde el principio dispondrás de una estructura que ya funciona. A partir de ahí, solo tendrás que modificar las partes necesarias, por ejemplo, rodeando con LOOP la sección que quieras repetir o añadiendo IF donde necesites tomar una decisión.

Además, la sintaxis se comprueba mientras escribes, por lo que los errores se señalan en el momento. También hay una función de depuración que resalta en tiempo real la línea que se está ejecutando, permitiéndote ver de inmediato «por dónde va el proceso». Gracias a estas ayudas, la transición de la grabación al script es gradual. Primero crea la estructura mediante una grabación y después ve añadiendo condiciones y bucles poco a poco. Con este método, incluso alguien sin experiencia en programación puede crear por sí mismo automatizaciones prácticas. Con makuroku, puedes probar gratis todas estas funciones.

Pruébalo gratis

Automatízalo con makuroku

makuroku graba tu ratón y teclado y luego los reproduce automáticamente. Añade scripts SCR e integración con IA (MCP) cuando necesites más. Todas las funciones gratis en Windows.