blog Cambiando el mundo
Discusión de problemas y soluciones de actualidad económica mundial

Trucos y tretas en Excel VBA para programadores - Automatizar navegacion web con Twebst

Si eres de los que tiene que repetir tareas en aplicaciones web una, y otra, y otra vez, un trabajo que no es ineficiente realizarlo manualmente, sino inhumano, tal vez quieras crear una macro en Excel VBA que te permita navegar de manera automática.

Para ello hay varias herramientas, pero en este post cubriré Twebst.  Cubriré tres aspectos:

  • Instalación
  • Configuración
  • Grabación de scripts para VBA

Instalación

  • Ve al sitio web de codecentrix.
  • Pincha el botón "Download".
  • Pincha el archivo EXE para descargar.
  • Una vez descargado ejecuta el instalador.

Configurando el libro de Excel

Para cada libro de Excel en que vayas a usar código de twebst debes hacer esto:

  • Estando en Excel con el libro abierto, presiona Alt F11 para desplegar el editor de código.
  • Ve a Tools > References
  • Asegurate de que la referencia a Open twebst esté marcada.

Grabando script para VBA

  • Abre el programa Twebst

     
  • Digita la dirección web del sitio que vas a acceder en el browser de Twebst.

     
  • El programa abre con dos ventanas. En la otra ventana selecciona VBA y pincha Start Rec para iniciar la grabación del script.

     
  • Efectua las tareas que desees.en el navegador
  • Pincha Stop Rec para detener la grabación.  Verás el script,

He ingresado a Google y he buscado e ingresado al sitio web de Rankia en el siguiente script de VBA usando Twebst.

Me ha parecido que Twebst crea scripts simples, y sirve como una buena introducción para hablar de automatización web.

Si no te gusta usar Twebst para automatizar navegación web, porque no lo encuentras muy flexible, puedes usar otras herramientas como Selenium.  Me ha parecido apropiado empezar con Twebst, porque creo que sirve mucho para encontrar los nombres de los nodos de XML que usaste al navegar.  El tema de nodos de XML no es un tema muy fácil para principiantes.  No es que no se pueda aprender, pero para programadores principiantes que no conozcan sobre web, puede ser un poco complicado.

El asunto es que las páginas web se organizan en "nodos" que se ramifican, como los directorios de un disco duro.  Cada campo de texto, botón y otros controles, corresponde a un nodo con una "ruta".  No voy a ampliar mucho aquí sobre el tema. En todo caso si deseas aprender sobre XML puedes acceder a XML Tutorial.

Existen otras herramientas para automatización en VBA, como Selenium, que si bien ofrece mayor flexibilidad, no está apropiadamente documentado, y sólo vas a encontrar código Java para Selenium, que no se traduce muy literalmente a VBA, por lo que tratar de encontrar código equivalente no va a ser demasiado fácil.  Por el momento Twebst debería servir para despertar la curiosidad sobre el tema.

Voy a ver si en el futuro escribo sobre Selenium, pero eso tomaría mucho tiempo.

Refrexiones sobre la automatización

He estado analizando el tema de la automatización y el empleo, y he llegado a la conclusión de que hay tareas que son muy repetitivas, que agregan poco valor a las empresas en virtud del esfuerzo y concentración que requieren, y poner a una persona a efectuar dicha tarea no sería ineficiente, sino inhumano.

Imagina una persona teniendo que depurar o revisar un reporte de Excel con 20 mil lineas.  Imagina tener que buscar información de 5000 productos en la web de una empresa para obtener ciertos datos, para llenar una hja de Excel.  Eso es simplemente inhumano y la tasa de error es muy alta.

Realmente si una persona no tiene una labor que sea intensiva en labores inhumanas, es que su empleo sí agrega valor.  Lo bueno es que si antes la persona hacía el trabajo manual, ahora puede automatizarlo y dedicarse a aprender formas de hacer más con los mismos recursos.  No es necesario un despido, a menos claro que su trabajo sea de copy/paste hasta el infinito.

He postergado los posts de automatización porque he querido estar seguro de que esto no fuera a dejar a nadie sin empleo.  Queda abierto el debate.

 

¿Te ha gustado el artículo?

Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico.

  1. #2

    Rolugar

    Me quito el sombrero, excelente aporte, llevo cerca de un año aprendiendo a programar en VBA y es algo que se vuelve adictivo, cada vez quieres automatizar mas tareas y el tema de extraer información específica de la web es simplemente escencial y súper oneroso, dedicó bastante tiempo simplemente en formatear la información de HTML a mis necesidades haciéndolo a mano. Seguiré tu tutorial y ojalá nos puedas seguir compratiendo este tipo de herramientas

    1 recomendaciones
  2. #3

    Comstar

    en respuesta a Rolugar
    Ver mensaje de Rolugar

    Puedes tratar de hacer más y más. Pero al final la idea es hacer menos y menos, porque si tus prácticas de programación son buenas, tu software será "bug free" y además vas a tener código al que no le va a importar muchos los cambios, porque con pequeñas modificaciones o sin modificaciones, se adaptará a condiciones cambiantes en el proceso. Trata de ser el peor usuario cuando programas, porque cuando haces de peor usuario, haces el mejor software. Lo ideal es que todo esté a menos de 2 clicks de distancia. Más que las herramientas, lo importante es lo que acabo de decir.

Autor del blog