Uso de VBA para automatizar sesiones de Internet Explorer desde una hoja de cálculo de Excel

  • Peter Holmes
  • 0
  • 3857
  • 401
Anuncio

Su integración con Windows permite el control de Internet Explorer de varias maneras sorprendentes utilizando el script Visual Basic para Aplicaciones (VBA) desde cualquier aplicación que lo admita, como Word, Outlook o Excel.

La automatización de VBA, especialmente la automatización directa de un navegador como IE, como verá en este artículo, es exactamente el tipo de cosa que eleva a VBA de un script de programación conveniente a un poderoso lenguaje de automatización. Lo que lo hace tan increíble es el hecho de que muchas aplicaciones con controles u objetos se crean simplemente con el fin de permitirle integrarse utilizando el lenguaje de programación VBA.

A través de los años, le mostramos cómo hacer algunas cosas realmente geniales con VBA. Por ejemplo, puede usarlo para enviar correos electrónicos directamente desde Excel Cómo enviar correos electrónicos desde una hoja de cálculo de Excel usando scripts de VBA Cómo enviar correos electrónicos desde una hoja de cálculo de Excel usando scripts de VBA Nuestra plantilla de código lo ayudará a configurar correos electrónicos automáticos desde Excel usando Collaboration Data Objects (CDO) y scripts de VBA. , puede exportar automáticamente las tareas de Outlook a una hoja de cálculo de Excel Cómo exportar sus tareas de Outlook a Excel con VBA Cómo exportar sus tareas de Outlook a Excel con VBA Independientemente de si es o no un fanático de Microsoft, algo bueno se puede decir sobre MS Los productos de Office, al menos, es lo fácil que es integrarlos entre ellos ... e incluso puede diseñar su propio navegador de Internet Cómo hacer su propio navegador de Internet básico con VBA Cómo hacer su propio navegador de Internet básico con VBA Cuando realmente te detienes a pensarlo, un navegador de Internet en su forma más simple no es realmente una aplicación tan impresionante. Quiero decir, sí, Internet es increíble para los estándares de cualquiera. El concepto de vinculación ...! Tampoco son solo productos de Microsoft. Existen aplicaciones de terceros de todo tipo de proveedores que han integrado VBA y objetos compatibles en su software, desde Adobe Acrobat SDK hasta ObjectARX SDK para AutoCAD, hay formas de “conectar a” más aplicaciones de las que probablemente te des cuenta.

La idea

En este caso, vas a conectar Excel con IE. ¿Por qué IE? Debido a que Internet Explorer está tan bien integrado con el sistema operativo que realmente no tiene que hacer mucho para comenzar a usar la automatización de IE en VBA en otros productos de Microsoft como Word o Excel. Eso es lo bueno de. En este artículo verás cómo funciona esta automatización, y en un artículo futuro verás cómo hacer casi lo mismo con otros navegadores..

Lo que voy a mostrar aquí es una aplicación aparentemente simple, pero tiene muchas aplicaciones en las que puede usar este código para hacer una variedad de cosas interesantes con su navegador. La conclusión es que va a crear una hoja de cálculo de Excel con el propósito de guardar rápidamente todas las ventanas abiertas de su navegador con un clic de un botón. Puede guardar esta hoja de cálculo y alejarse o apagar la computadora.

Regrese una hora o tres días después, abra la hoja de cálculo, haga clic en otro botón y las URL guardadas se volverán a abrir en la misma cantidad de pestañas que tenía antes. El uso obvio de esto sería almacenar una biblioteca completa de configuraciones comunes de espacio de trabajo en línea en Excel. Luego puede restaurar ese espacio de trabajo con un clic de un botón sin tener que encontrar todas esas URL nuevamente.

Automatizando Internet Explorer con VBA

Lo primero que debe hacer es abrir Excel (estoy usando 2013; otras versiones son similares cuando se trata de programación VBA) y vaya al elemento del menú Desarrollador. Allí dentro, verá un botón de inserción, que despliega todos sus controles. Seleccione el control de botón ActiveX y colóquelo en su hoja de cálculo.

Presumiblemente, ya ha creado un encabezado para las URL si lo desea, pero no tiene que hacerlo. Esta es realmente una biblioteca de almacenamiento de URL, por lo que los encabezados realmente no importan. Una vez que agregue el botón, haga doble clic en él para abrir el editor VBA. En la esquina inferior izquierda, verá las propiedades de su nuevo botón.

Cambie el nombre a algo como cmdSaveURLs y establezca el Título en “Guardar URL” - indicando que este es el botón para guardar todas las URL abiertas de su navegador IE.

A continuación, vaya al menú Herramientas en la parte superior del editor VBA, haga clic en Referencias en el menú y desplácese hacia abajo por la larga lista para encontrar el “Controles de internet de Microsoft” referencia. Haga clic en la casilla de verificación a la izquierda y luego haga clic en Aceptar.

Ahora estás listo para rodar. En el área de texto del editor, debería ver una línea que dice “Private Sub cmdSaveURLs_Click ()”. Si no lo ve, haga clic en el cuadro desplegable de la izquierda sobre el área de texto y busque cmdSaveURLs en la lista. Selecciónelo y creará la función Click () para usted.

Este es el código que desea insertar en esa función:

im IE As Object Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 For Each IE In shellWins IE_TabURL = IE.LocationURL If IE_TabURL vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_RowPosition) = IE_ 1 End If Next Set shellWins = Nothing Set IE = Nothing

La referencia de Microsoft Scripting Runtime hace que pueda acceder al objeto ShellWindows, lo que le permite iterar a través de Windows y localizar las instancias de IE que tiene abiertas. Este script ubicará cada URL que tenga abierta y la escribirá en la hoja de cálculo de Excel.

Entonces, en teoría, si está trabajando en algo como bloguear y tiene algunos elementos abiertos, como ventanas de investigación, el editor de su blog o una ventana de calendario, todas esas pestañas estarán activas. Si tiene que cerrar o salir rápidamente, puede ser un verdadero dolor guardar donde está copiando todas esas URL.

Con su nuevo script de Excel, simplemente haga clic en el botón Cargar URL, y lo cargará directamente en la hoja de cálculo.

Una advertencia Si no está utilizando una fila de encabezado, entonces querrá cambiar la línea “intRowPosition = 2” a “intRowPosition = 1” y esto comenzará en la primera fila en lugar de omitir la fila del encabezado.

Abrir el espacio de trabajo del navegador guardado

La siguiente etapa de este proyecto es ir en la otra dirección. Haga clic en el “Cargar URL” y haga que Excel inicie IE y vuelva a cargar todas las URL que haya guardado en la hoja de cálculo. Así es como debería verse la función cmdLoadURLs_Click ().

Dim IE como Object Dim shellWins como New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 Set IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) Mientras IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) Mientras IE.Busy DoEvents Wend intRowPosition = IntRowPosition = IntRowPosition = IntRowPosition = 1 Wend Set IE = Nada

Aquí hay algunos pasos, pero como puede ver, el código no es tan largo ni complicado. Crea una nueva instancia de IE, hazla visible (esto abrirá IE sin cargar una URL). A continuación, cargará la primera URL de la lista..

los “Mientras IE.Busy” parte de la secuencia de comandos espera hasta que la página esté completamente cargada, y luego pasa al resto de las URL en su hoja de cálculo, abriendo una nueva pestaña (eso es lo que “CLng (2048)” lo hace, hasta que llegue a una celda en blanco en su hoja de cálculo, entonces dejará de abrir pestañas nuevas. Aquí está mi navegador IE con las cuatro pestañas originales recuperadas usando el script de automatización Excel IE.

Resumen

Mi objetivo real de hacer esto era que las hojas de cálculo individuales configuraran colecciones de pestañas para tareas como investigar y escribir en mi propio blog, escribir en MakeUseOf, realizar trabajos de proyectos de SEO en el sitio o una lista completa de otros roles o proyectos que requieren una colección guardada de pestañas que siempre se usan.

Usar una hoja de cálculo para almacenar esas configuraciones y automatizar su apertura en un navegador puede ahorrar mucho tiempo ... y en realidad también es genial.

¿Utiliza algún tipo de automatización de IE en sus aplicaciones VBA? ¿Ves otros usos geniales para este tipo de control de IE desde Excel? Comparta sus pensamientos y comentarios en la sección de comentarios a continuación.!




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.