Anuncio

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

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 asombroso 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, le mostramos cómo hacer algunas cosas realmente geniales con VBA. Por ejemplo, puedes usarlo para enviar correos electrónicos directamente desde Excel Cómo enviar correos electrónicos desde una hoja de cálculo de Excel con secuencias de comandos VBANuestra plantilla de código lo ayudará a configurar correos electrónicos automatizados desde Excel utilizando Collaboration Data Objects (CDO) y scripts VBA.

instagram viewer
Lee mas , puedes automáticamente exportar tareas de Outlook a una hoja de cálculo de Excel Cómo exportar sus tareas de Outlook a Excel con VBASi eres o no un fanático de Microsoft, una cosa buena que se puede decir sobre los productos de MS Office, al menos, es lo fácil que es integrarlos entre sí ... Lee mas e incluso puedes diseñe su propio navegador de Internet Cómo hacer tu propio navegador de Internet básico con VBACuando realmente te paras 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 ... Lee mas ! Tampoco son solo productos de Microsoft. Hay 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 "conectarse" a más aplicaciones de las que probablemente darse cuenta de.

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. Esa es la belleza de adentro. En este artículo, verá cómo funciona esta automatización, y en un artículo futuro verá cómo hacer casi el mismo tipo de cosas 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 fin 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 en lo que respecta a la programación de 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.

IE-automation1

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 de VBA. En la esquina inferior izquierda, verá las propiedades de su nuevo botón.

Cambie el nombre a algo así como cmdSaveURLs y configure el Título para "Guardar URL", lo que indica que este es el botón para guardar todas las URL abiertas de su navegador IE.

guardar-urls

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 por la larga lista para encontrar la referencia de "Controles de Internet de Microsoft". Haga clic en la casilla de verificación a la izquierda y luego haga clic en Aceptar.

IE-automation3

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 cmdSaveURL 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 objeto. Dim shellWins como nuevo ShellWindows. Dim IE_TabURL como cadena. Dim intRowPosition As Integer intRowPosition = 2 para cada IE en shellWins IE_TabURL = IE.LocationURL If IE_TabURL <> vbNullString Then Sheet1.Range ("A" & intRowPosition) = IE_TabURL intRowPosition = intRowPosition + 1 End If Next Set shellWins = Nada. Establecer IE = Nada

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.

IE-automation4

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

IE-automation5

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.

IE-automation6

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 de 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 "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 objeto. Dim shellWins como nuevo ShellWindows. Dim IE_TabURL como cadena. Dim intRowPosition As Integer intRowPosition = 2 Establezca IE = CreateObject ("InternetExplorer. Solicitud") 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 + 1. Wend Set IE = Nothing

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.

IE-automation8

La parte "Mientras IE.Busy" del script 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 hace el "CLng (2048)", hasta que toque una celda en blanco en su hoja de cálculo, luego se detendrá abriendo nuevas pestañas. Aquí está mi navegador IE con las cuatro pestañas originales recuperadas usando el script de automatización IE de Excel.

IE-automation9

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, haciendo trabajos de proyectos SEO en el sitio, o una lista completa de otros roles o proyectos que requieren una colección guardada de pestañas que siempre están usado.

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? ¡Comparte tus pensamientos y comentarios en la sección de comentarios a continuación!

Ryan tiene una licenciatura en ingeniería eléctrica. Ha trabajado 13 años en ingeniería de automatización, 5 años en TI y ahora es ingeniero de aplicaciones. Ex editor jefe de MakeUseOf, ha hablado en conferencias nacionales sobre visualización de datos y ha aparecido en la televisión y radio nacionales.