
Michael Fisher
0
3812
483
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 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, eso no es gran cosa.
De hecho, gracias a las referencias incrustadas en las aplicaciones que usan VBA, puede ingresar y enviar páginas web a través de sus propias aplicaciones. Si ha seguido nuestros artículos de scripting anteriores, entonces sabe que amamos el script VB y VBA, como mi artículo sobre cómo maximizar Windows 3 formas de abrir aplicaciones y Windows maximizado con VB Script [Windows] 3 formas de abrir aplicaciones y Windows maximizado con VB Script [Windows] Si hay algo que me encanta hacer, es escribir scripts VB. Ya sea que se trate de un archivo de secuencia de comandos de Windows o de una secuencia de comandos VBA dentro de una aplicación, las secuencias de comandos proporcionan la capacidad de agregar funcionalidad a las aplicaciones ..., Paul's en gráficos de actualización automática Cómo crear gráficos de Excel de actualización automática en tres sencillos pasos Cómo crear Excel de actualización automática Gráficos en tres sencillos pasos Le mostraremos cómo hacer que sus gráficos de Excel se actualicen automáticamente. Simplemente agregue nuevos datos y observe cómo se muestran automáticamente en su gráfico. Es rapido y facil. y Saikat sobre el envío de 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 .
Usando el siguiente enfoque, puede usar Word, Access o Excel para leer documentos HTML en la web, alterar esos documentos y luego generar lo que desee en una nueva ventana del navegador.
Puede sonar como algo que solo un programador de VBA experimentado puede hacer, pero en este artículo le mostraré cómo puede hacerlo usted mismo, comenzando con un procedimiento básico para enviar datos desde su propia aplicación a una página web.
Habilitar los controles de Internet de Microsoft
El primer paso, independientemente de cómo desee utilizar la capacidad de ingresar / generar su propio HTML a través de VBA, es habilitar la referencia de Controles de Internet de Microsoft.
En Excel, puede hacer esto haciendo clic en el “Desarrollador” elemento del menú, haciendo clic Modo de diseño, y luego haciendo clic en el “Ver código” botón. Esto puede parecer diferente en 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 entonces Referencias.
En la ventana Referencias, desplácese hacia abajo hasta que vea “Controles de internet de Microsoft“. Marque la casilla y luego haga clic “Okay“.
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.
Entrada y salida de HTML
Lo primero que querrá lograr aquí es enviar información a HTML. Piense en cuánto puede hacer una vez que pueda enviar información a una página web HTML con un formato perfecto. Puede extraer datos de sus hojas de cálculo de Excel y generarlos en un informe bien formateado.
Para crear esta función, deberá insertar un botón de comando en su hoja. Bajo la Desarrollador menú, haga clic en Modo de diseño, y luego haga clic en “Insertar” botón. Verás un menú desplegable de controles que puedes agregar a tu 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 cualquier hoja) que desee enviar a un informe cuando se haga clic en el botón. Haga clic izquierdo en el botón para seleccionarlo y haga clic “Ver código“.
Ingrese el siguiente código:
Sub Button1_Click ()
Dim objIE como objeto
Dim HTML como cadena
'---------- EL CÓDIGO HTML VA DE AQUÍ Y ABAJO----------
HTML = "Página de informe HTML" & _
"" & _
"Los siguientes son resultados de su cálculo diario"& _
""& _
"Producción diaria:" & Sheet1.Cells (1, 1) & ""& _
"Daily Scrap:" & Sheet1.Cells (1, 2) & ""
'---------- EL CÓDIGO HTML VA AQUÍ Y ARRIBA---------
En Error GoTo error_handler
Establecer objIE = CreateObject ("InternetExplorer.Application")
Con objIE
.Navegue "acerca de: en blanco"
Do While .Busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop
.Visible = Verdadero
.Document.Write HTML
Terminar con
Establecer objIE = Nada
Salir Sub
error_handler:
MsgBox ("Error inesperado, estoy saliendo")
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 la 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 HTML de algún sitio web, manipular los datos y luego enviarlo a una página de salida HTML.
Sub Button1_Click ()
Dim objIE como objeto
Dim HTML como cadena
En Error GoTo error_handler
Establecer objIE = CreateObject ("InternetExplorer.Application")
Con objIE
.Navegue "http://www.google.com"
Do While .Busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop
.Visible = Verdadero
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 &" "
Terminar con
Establecer objIE = Nada
Salir Sub
error_handler:
MsgBox ("Error inesperado, estoy saliendo")
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. Luego coloqué mi propio texto de salida HTML en la parte superior de la página y luego envié el mismo HTML a la salida HTML de VBA. Así es como se ve:
Este es un ejemplo muy básico de lo que es capaz de hacer. Pero si lo piensa, una vez que tenga 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 podría reescribir todo 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 algún potencial para usar la entrada o salida HTML en sus propias aplicaciones? ¿Puedes pensar en algún uso genial para este script? Comparte tus pensamientos en la sección de comentarios a continuación.
Crédito de imagen: Shutterstock