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 según los estándares de cualquier persona. El concepto de vincular muchas de las computadoras y dispositivos móviles del mundo dentro de esta red masiva es épico. Pero el concepto de transferir un archivo de texto con un código especial y mostrar ese texto transferido en la pantalla de la computadora no es gran cosa.
De hecho, gracias a las referencias integradas en aplicaciones que usan VBA, puede ingresar y sacar páginas web a través de sus propias aplicaciones. Si ha seguido nuestros últimos artículos de scripting, entonces sabrá que nos encantan los scripts de VB y VBA, como mi artículo sobre cómo maximizar Windows 3 maneras de abrir aplicaciones y Windows Maximized con VB Script [Windows] 3 maneras de abrir aplicaciones y Windows maximizadas con VB Script [Windows] Si hay algo que me gusta hacer, es escribir scripts VB. Ya sea un archivo de Windows Script o un script de VBA dentro de una aplicación, los scripts brindan la capacidad de agregar funcionalidad a las aplicaciones ... Leer más, Paul's en gráficos autoactualizados Cómo crear gráficos de Excel autoactualizados en tres sencillos pasos Cómo crear Gráficos de Excel autoactualizados en tres sencillos pasos Le mostraremos cómo hacer que sus gráficos de Excel se actualicen automáticamente. Simplemente agregue nuevos datos y vea cómo se muestran automáticamente en su gráfico. Es rápido y fácil Lea más, y Saikat's envíe correos electrónicos masivos Cómo enviar correos electrónicos masivos personalizados en Outlook con combinación de correspondencia Cómo enviar correos electrónicos masivos personalizados en Outlook con combinación de correspondencia Lea más.
Utilizando el siguiente enfoque, puede usar Word, Access o Excel para leer documentos HTML en la web, modificar esos documentos y luego generar lo que desee en una nueva ventana del navegador.
Puede sonar como algo que solo un programador experimentado de VBA puede hacer, pero en este artículo voy a mostrarte cómo puedes hacerlo tú mismo, comenzando con un procedimiento básico para generar datos desde tu propia aplicación a una página web.
Habilitar los controles de Internet de Microsoft
El primer paso, sin importar cómo desee utilizar la capacidad de entrada / salida de su propio HTML a través de VBA, es habilitar la referencia de Microsoft Internet Controls.
En Excel, haga esto haciendo clic en el elemento de menú " Desarrollador ", haciendo clic en Modo de diseño y luego haciendo clic en el botón " Ver código ". Esto puede parecer diferente en las versiones anteriores de Excel, pero esencialmente necesita encontrar dónde puede iniciar el editor de código VBA.
En el editor de VBA, haga clic en Herramientas y luego en Referencias .
En la ventana Referencias, desplácese hacia abajo hasta que vea " Microsoft Internet Controls ". Marque la casilla y luego haga clic en " Aceptar ".
Ahora, dentro de su código VBA, podrá crear objetos que pueden obtener información de Internet y puede generar sus propios documentos HTML que el usuario puede ver en su propio navegador.
Ingresando y produciendo HTML
Lo primero que querrá lograr aquí es generar información en HTML. Piense cuánto puede hacer una vez que puede generar información en una página HTML con formato perfecto. Puede extraer datos de sus hojas de cálculo de Excel y darlos a conocer en un informe muy bien formateado.
Para crear esta característica, deberá insertar un botón de comando en su hoja. En el menú Desarrollador, haga clic en Modo de diseño y luego haga clic en el botón " Insertar ". Verá un menú desplegable de controles que puede agregar a su hoja.
En este caso, haga clic en el botón de control y colóquelo en su hoja. Asegúrese de que haya algunos datos en la hoja (o en cualquier hoja) que quiera enviar a un informe cuando se haga clic en el botón. Haga clic izquierdo sobre el botón para seleccionarlo y haga clic en " Ver código ".
Ingrese el siguiente código:
Sub Button1_Click ()
Dim objie como objeto
Dim HTML como cadena
'---------- El CÓDIGO HTML VA DESDE AQUÍ Y BAJO ----------
HTML = "página de informe HTML" y _
"" & _
" Los siguientes son resultados de su cálculo diario " & _
""& _
"Producción diaria:" y Sheet1.Cells (1, 1) & ""& _
"Daily Scrap:" y Sheet1.Cells (1, 2) & ""
'---------- El CÓDIGO HTML VA AQUÍ Y ARRIBA ---------
En caso de error, vaya a error_handler
Establecer objIE = CreateObject ("InternetExplorer.Application")
Con objIE
.Navegar "sobre: en blanco"
Hacer mientras .Busy: DoEvents: Loop
Hacer mientras .ReadyState 4: DoEvents: Loop
.Visible = True
.Document.Write HTML
Terminar con
Establecer objIE = Nada
Salir Sub
error_handler:
MsgBox ("Error inesperado, dejo de fumar").
objIE.Quit
Establecer objIE = Nada
End Sub
Este código genera el HTML que ha definido en esa cadena de salida. Como puede ver en mi ejemplo anterior, puede incrustar datos de cualquier hoja en Excel en su cadena HTML. Aquí está el informe de página web resultante:
Ahora que tiene la salida HTML funcionando, el siguiente paso para hacer que su script VBA funcione prácticamente como un navegador web es leer en HTML desde algún sitio web, manipular los datos y luego enviarlos a una página de salida HTML.
Sub Button1_Click ()
Dim objie como objeto
Dim HTML como cadena
En caso de error, vaya a error_handler
Establecer objIE = CreateObject ("InternetExplorer.Application")
Con objIE
.Navegue "http://www.google.com"
Hacer mientras .Busy: DoEvents: Loop
Hacer mientras .ReadyState 4: DoEvents: Loop
.Visible = True
HTML = objIE.Document.Body.innerHTML
.Document.Write "¡Mis propios resultados de Google!¡Esta es una versión editada de la página de Google!
"& HTML y" "
Terminar con
Establecer objIE = Nada
Salir Sub
error_handler:
MsgBox ("Error inesperado, dejo de fumar").
objIE.Quit
Establecer objIE = Nada
End Sub
Lo que he hecho aquí es usar el objeto IE para leer HTML de Google en una variable de texto en VBA llamada HTML. A continuación, coloqué mi propio texto de salida HTML en la parte superior de la página, y luego imprimí el mismo HTML en la salida HTML de VBA. Esto es lo que parece:
Este es un ejemplo muy básico de lo que esto es capaz de hacer. Pero si lo piensa, una vez que tiene el HTML de una página web cargada en su variable de cadena VBA, puede buscar líneas específicas en la página, buscar imágenes, buscar direcciones de correo electrónico de números de teléfono, o puede reescribir todo el ingrese la página en una nueva versión editada de la misma página en el formato que desee y con las modificaciones que desee.
Hacer esto requeriría un poco de destreza en la manipulación de cadenas, pero nada es imposible una vez que haya leído en la fuente HTML de la web.
¿Ve alguna posibilidad de usar entrada o salida HTML en sus propias aplicaciones? ¿Puedes pensar en algún buen uso para este script? Comparte tus pensamientos en la sección de comentarios a continuación.
Crédito de la imagen: Shutterstock