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

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

Su integración con Windows permite el control de Internet Explorer de varias formas sorprendentes mediante el uso de secuencias de comandos de Visual Basic para aplicaciones (VBA) desde cualquier aplicación que lo admita, como Word, Outlook o Excel..

La automatización 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 VBA de un script de programación conveniente a un lenguaje de automatización poderoso. Lo que lo hace tan impresionante es el hecho de que muchas aplicaciones con controles u objetos se crean simplemente con el propósito de permitirle integrarse usando el lenguaje de programación VBA.

A través de los años, te hemos mostrado cómo hacer 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. Usar scripts de VBA. Cómo enviar correos electrónicos desde una hoja de cálculo de Excel. Usar scripts de VBA. Nuestra plantilla de código lo ayudará a configurar correos electrónicos automatizados desde Excel. Objetos de datos de colaboración (CDO) y secuencias de comandos VBA. Lea más, 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 Ya sea o no un fanático de Microsoft, una cosa buena que se puede decir Acerca de los productos de MS Office, al menos, es lo fácil que es integrar cada uno de ellos ... Leer más, e incluso puede diseñar su propio navegador de Internet Cómo hacer su propio navegador de Internet básico Usar VBA Cómo hacer su propio sistema básico Navegador de Internet usando VBA Cuando realmente te paras a pensar en ello, 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 todos los estándares. El concepto de vincular ... Leer más! Tampoco son solo los productos de Microsoft. Existen aplicaciones de terceros de todo tipo de proveedores que han integrado VBA y objetos compatibles en su software, desde el Adobe Acrobat SDK hasta el ObjectARX SDK para AutoCAD. Hay formas de “conectar a” más aplicaciones de las que probablemente te das 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 utilizar la automatización de IE en VBA en otros productos de Microsoft como Word o Excel. Esa es la belleza de in. En este artículo verás cómo funciona esta automatización, y en un artículo futuro verás cómo hacer casi el mismo tipo de cosas con otros navegadores..

Lo que te mostraré aquí es una aplicación aparentemente simple, pero tiene muchas aplicaciones donde podrías usar este código para hacer una variedad de cosas geniales con tu 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 del navegador con solo hacer clic en un botón. Puede guardar esta hoja de cálculo y alejarse o apagar su computadora.

Regrese una 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 el mismo número de pestañas que tenía anteriormente. El uso obvio de esto sería almacenar una biblioteca completa de configuraciones comunes de espacios de trabajo en línea en Excel. Luego, puede restaurar ese espacio de trabajo con un solo clic de un botón sin tener que volver a encontrar todas esas URL.

Automatizando Internet Explorer con VBA

Lo primero que debe hacer es abrir Excel (estoy usando 2013 - otras versiones son similares cuando se trata de la programación de VBA) e ir al elemento del menú Desarrollador. Dentro de allí, verás un botón de inserción, que despliega todos tus controles. Seleccione el control de botón pulsador 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. Esto 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 de VBA. En la parte inferior izquierda, verá las propiedades de su nuevo botón pulsador.

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 desde su navegador IE.

A continuación, vaya al menú Herramientas en la parte superior del editor de VBA, haga clic en Referencias en el menú, y desplácese hacia abajo en la lista larga para encontrar la “Controles de Internet de Microsoft” referencia. Haga clic en la casilla de verificación a la izquierda de la misma 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 “Privado 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 como Object Dim shellWins As New ShellWindows Dim IE_TabURL As String Dim intRowPosition As Integer intRowPosition = 2 para cada IE En shellWins IE_TabURL = IE.LocationURLPasidad de las personas intRowPosition + 1 End If Next Set shellWins = Nothing Set IE = Nothing

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

Entonces, en teoría, si estás trabajando en algo como los blogs y tienes algunos elementos abiertos, como las ventanas de búsqueda, el editor de tu blog o una ventana de calendario, todas esas pestañas estarán activas. Si tiene que cerrar o salir apresuradamente, puede ser un verdadero dolor guardar dónde se encuentra copiando todas esas URL..

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

Una advertencia. Si no está usando 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 saltarse 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 URLs” y haga que Excel inicie IE y vuelva a cargar todas las URL que haya guardado en la hoja de cálculo. Aquí es cómo debe verse la función cmdLoadURLs_Click ().

Dim IE como objeto Dim shellWins como nuevo ShellWindows Dim IE_TabURL como cadena Dim intRowPosition como entero intRowPosition = 2 Establecer IE = CreateObject ("InternetExplorer.Application") IE.Visible = True IE.Navigate Sheet1.Range ("A" & intRowPosition) IE.Busy DoEvents Wend intRowPosition = intRowPosition + 1 While Sheet1.Range ("A" & intRowPosition) <> vbNullString IE.Navigate Sheet1.Range ("A" & intRowPosition), CLng (2048) While IE.Busy DoEvents 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, la hace visible (esto abrirá IE sin cargar una URL). A continuación cargará la primera URL en la lista..

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

Resumen

Mi objetivo real de hacer esto fue tener hojas de cálculo individuales que configuren colecciones de pestañas para tareas como investigar y escribir en mi propio blog, escribir en MakeUseOf, hacer trabajos de proyectos de SEO en el sitio o una lista completa de otros roles o proyectos que requieran Una colección guardada de pestañas que siempre se utilizan..

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 muy bueno.

¿Utiliza algún tipo de automatización de IE en sus aplicaciones de VBA? ¿Ves otros usos interesantes para este tipo de control de IE desde Excel? Comparte tus opiniones y comentarios en la sección de comentarios a continuación!

Obtenga más información sobre: ​​Automatización informática, Microsoft Excel, Hoja de cálculo.