El uso de vba para automatizar las sesiones de internet explorer desde una hoja de cálculo de excel
Su integración con Windows permite el control de Internet Explorer en un número de maneras sorprendentes utilizando Visual Basic para aplicaciones guión (VBA) desde cualquier aplicación que lo soporta, como Word, Outlook o Excel.
Vídeo: El objeto Range – Clase 3 – Programación del Excel con VBA
VBA automatización - en especial la automatización directamente un navegador como Internet Explorer como se verá en este artículo - es exactamente el tipo de cosa que eleva VBA desde un script de programación conveniente en un potente lenguaje de automatización. Lo que lo hace tan impresionante es el hecho de que muchas aplicaciones con controles u objetos son creados simplemente con el fin de que le permite integrar en él usando el lenguaje de programación VBA.
A través de los años, le he mostrado cómo hacer algunas cosas realmente interesantes con VBA. Por ejemplo, se puede utilizar para enviar correos electrónicos directamente desde dentro de Excel, usted puede automáticamente tareas de exportación de Outlook a una hoja de cálculo de Excel, E incluso se puede diseñar su propio navegador de Internet! Es no sólo los productos de Microsoft, ya sea. Hay 3 de las aplicaciones de todo tipo de vendedores que han integrado VBA y objetos compatibles en su software - desde Adobe Acrobat SDK para el SDK para AutoCAD ObjectARX - hay maneras de “conectar a” más solicitudes que probablemente cuenta.Cómo enviar correos electrónicos desde una hoja de Excel VBA mediante secuencias de comandosCómo enviar correos electrónicos desde una hoja de Excel VBA mediante secuencias de comandosEn el pasado, he usado correo electrónico mucho en mis trabajos por lotes y otros scripts automatizados, al igual que he descrito en artículos anteriores. Estos son ideales para esos momentos en los que tiene una secuencia de comandos ...Lee mas
La idea
En este caso, se va 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 empezar a utilizar la automatización IE en VBA en otros productos de Microsoft como Word o Excel. Esa es la belleza de. En este artículo verá cómo funciona esta automatización, y en un futuro artículo 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 un montón de aplicaciones en las que usted podría utilizar este código para hacer una variedad de cosas interesantes con su navegador. La conclusión es que usted va a crear una hoja de cálculo de Excel para el propósito de salvar rápidamente todas las ventanas abiertas del navegador con un solo clic de un botón. Puede guardar esta hoja de cálculo y se aleje o apagar el equipo.
Vuelve una hora o tres días más tarde, abra la hoja de cálculo, haga clic en otro botón y las direcciones URL guardados abrirán de nuevo en el mismo número de fichas, como lo hizo antes. El uso fresco obvia de esto sería para almacenar toda una biblioteca de configuraciones de espacio de trabajo en línea comunes en Excel. A continuación, se puede restaurar un espacio de trabajo con un solo clic de un botón, sin tener que buscar todas las direcciones URL de nuevo.
La automatización de 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 VBA) e ir a la opción de menú desarrollador. En el interior hay, verá un botón de inserción, que se despliega todos sus controles. Seleccione el control ActiveX pulsador y colocarlo en la hoja de cálculo.
Es de suponer, que ya ha creado una cabecera de URL si quieres, pero no tiene que hacerlo. Esto es realmente una biblioteca de almacenamiento de URL, por lo que los encabezados no importan. Una vez añadido el botón, haga doble clic en él para abrir el editor de VBA. Para la parte inferior izquierda, verá las propiedades de la nueva pulsador.
Vídeo: Use Excel & VBA to automate Internet Explorer -beginner
Cambiar el nombre a algo así como cmdSaveURLs y establecer el título a “Guardar direcciones URL” - lo que indica que este es el botón para guardar todos Abrir URL de su navegador Internet Explorer.
A continuación, vaya al menú Herramientas en la parte superior del editor de VBA, haga clic en referencias en el menú y desplazarse por la lista larga de encontrar la referencia “Microsoft Internet Controls”. Haga clic en la casilla a la izquierda de ella y, a continuación, haga clic en Aceptar.
Ahora ya está listo para rodar. En el área de texto editor, debería ver una línea que dice “Private Sub cmdSaveURLs_Click ()”. Si no lo ve, haga clic en el cuadro desplegable a la izquierda por encima de la zona de texto y encontrar cmdSaveURLs en la lista. Seleccionarlo, y va a crear la función Click () para usted.
Este es el código que desea insertar en esa función:
im es decir, como ObjectDim shellWins Como Nueva ShellWindowsDim IE_TabURL Como StringDim intRowPosition Como IntegerintRowPosition = 2Porque Cada IE En shellWinsIE_TabURL = IE.LocationURLIf IE_TabURL lt; gt; vbNullString ThenSheet1.Range ("UN" & intRowPosition) = = IE_TabURLintRowPosition intRowPosition + 1End IfNextSet shellWins = NothingSet IE = nada
La referencia de Microsoft Scripting Runtime hace que sea para que pueda acceder a los ShellWindows objeto, que le permite iterar a través de Windows y localizar los casos de IE que ha abierto. Este script localizará todas las URL que ha abierto y escribirla en la hoja de cálculo Excel.
Vídeo: Macros Excel, Cap. 7 Selección de Hojas - Sheets @ADNDC @adanjp
Por lo tanto, en teoría, si está trabajando en algo como los blogs, y tiene un par de partidas abiertas, como las ventanas de investigación, el editor de blogs, o una ventana del calendario - todas esas pestañas estarán activos. Si usted tiene que apagar o salir a toda prisa, puede ser un verdadero dolor de ahorrar donde está copiando todos esos URL.
Con el nuevo script de Excel, haga clic en el botón de direcciones URL de carga, y va a cargar la derecha por la hoja de cálculo.
Una advertencia. Si no está utilizando una fila de encabezado, entonces usted querrá cambiar la línea “intRowPosition = 2” a “intRowPosition = 1” y esto se iniciará en la primera fila en lugar de saltarse la fila de encabezado.
La apertura del espacio de trabajo del navegador guardadas
La siguiente etapa de este proyecto es ir en la otra dirección. Haga clic en “URL de carga” y tienen Excel IE puesta en marcha y volver a cargar todos esos URL que haya guardado en la hoja de cálculo. Esto es lo que la función cmdLoadURLs_Click () debe ser similar.
Dim es decir, como shellWins ObjectDim como nuevo ShellWindowsDim IE_TabURL Como StringDim intRowPosition Como IntegerintRowPosition = 2Ajuste IE = CreateObject ("InternetExplorer.Application") IE.Visible = TrueIE.Navigate Sheet1.Range ("UN" & intRowPosition) Mientras IE.BusyDoEventsWendintRowPosition = intRowPosition + 1Mientras Sheet1.Range ("UN" & intRowPosition) lt; gt; vbNullStringIE.Navigate Sheet1.Range ("UN" & intRowPosition), CLng (2048) Mientras IE.BusyDoEventsWendintRowPosition = intRowPosition + 1WendSet IE = Nada
Hay algunos pasos aquí, pero como se puede ver el código no es tan largo o complicado. Se crea una nueva instancia de IE, que sea visible (esto abrirá IE sin cargar una URL). A continuación se va a cargar la primera URL en la lista.
La parte “Mientras IE.Busy” del script espera a que la página se ha cargado completamente, y luego seguir adelante con el resto de las URL de su hoja de cálculo, abrir una nueva pestaña (eso es lo que el “CLng (2048)” hace, hasta golpea una celda en blanco en la hoja de cálculo, entonces dejará de abrir nuevas pestañas. Aquí está mi navegador Internet Explorer con las cuatro pestañas originales recuperados usando la secuencia de comandos de automatización de Excel IE.
Resumen
Mi verdadero objetivo de hacer esto iba a tener hojas de cálculo individuales establecieron colecciones de fichas para tareas como investigar y escribir en mi propio blog, escribiendo en MakeUseOf, haciendo el trabajo del proyecto de SEO en el sitio, o toda una lista de otros papeles o proyectos que requieren una colección guardada de fichas que se utilizan siempre.
El uso de una hoja de cálculo para almacenar los ajustes y la automatización de abrirlos en un navegador puede ahorrar mucho tiempo ... y en realidad es bastante moderno.
Cómo se utiliza cualquier tipo de automatización de IE en sus aplicaciones VBA? Ver otros usos interesantes para este tipo de control de IE desde Excel? Compartir sus pensamientos y comentarios en la sección de comentarios!