Descargar archivos de Internet con VBA Excel

Descargar archivos de Internet con VBA Excel es una tarea muy útil y práctica para automatizar procesos en Excel. VBA (Visual Basic for Applications) es un entorno de programación que permite la automatización de tareas en Excel, brindando la capacidad de manipular datos, realizar cálculos complejos, generar gráficos y mucho más.

Índice
  1. Pasos previos
    1. Habilitar las herramientas de desarrollador en Excel
    2. Configuraciones iniciales
  2. Descargar archivos desde una URL específica
    1. Variables y objetos necesarios
    2. Código para descargar archivos desde una URL
    3. Guardar el archivo descargado
  3. Descargar archivos desde una lista de URLs
    1. Variables y objetos necesarios
    2. Código para descargar archivos desde una lista de URLs

Pasos previos

Habilitar las herramientas de desarrollador en Excel

Antes de comenzar a utilizar VBA Excel, es necesario habilitar la pestaña de "Desarrollador" en Excel si no está visible. Para hacer esto, sigue los siguientes pasos:

  1. Abre Excel y haz clic en "Archivo".
  2. Selecciona "Opciones" y se abrirá una ventana con varias opciones.
  3. Haz clic en "Personalizar Cinta de Opciones".
  4. En la lista de pestañas disponibles, marca la casilla "Desarrollador".
  5. Haz clic en "Aceptar" para aplicar los cambios.

Configuraciones iniciales

Antes de comenzar a descargar archivos con VBA Excel, es importante realizar algunas configuraciones iniciales para garantizar el correcto funcionamiento del código. Asegúrate de seguir los siguientes pasos:

  1. Habilita las macros en Excel. Ve a "Archivo" > "Opciones" > "Centro de confianza" > "Configuración del Centro de confianza" y asegúrate de que la opción "Habilitar todas las macros" esté seleccionada.
  2. Ajusta los niveles de seguridad de Excel. Ve a "Archivo" > "Opciones" > "Centro de confianza" > "Configuración del Centro de confianza" y verifica que los niveles de seguridad sean los adecuados para la descarga de archivos.

Descargar archivos desde una URL específica

Variables y objetos necesarios

Para descargar un archivo desde una URL específica, necesitarás utilizar las siguientes variables y objetos:

  • La variable URL, que almacenará la dirección de la página web o del archivo que deseas descargar.
  • El objeto WinHttp, que se utilizará para enviar una solicitud HTTP y recibir la respuesta del servidor.
  • El objeto Stream, que se utilizará para guardar el contenido del archivo descargado.
  • La variable File, que contendrá la ruta y el nombre del archivo descargado.

Es importante asignar el valor correcto a estas variables y objetos antes de ejecutar el código.

Código para descargar archivos desde una URL

A continuación, se proporciona un ejemplo de código VBA que permite descargar un archivo desde una URL específica:

```vb
Sub DescargarArchivo()

Dim URL As String
Dim WinHttp As Object
Dim Stream As Object
Dim File As String

' Asigna la URL del archivo a la variable URL
URL = "http://www.ejemplo.com/archivo.xlsx"

' Crea una instancia del objeto WinHttp
Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

' Abre una conexión HTTP con la URL especificada
WinHttp.Open "GET", URL, False

' Envía la solicitud HTTP al servidor y recibe la respuesta
WinHttp.Send

' Crea una instancia del objeto Stream
Set Stream = CreateObject("ADODB.Stream")

' Configura el objeto Stream para guardar el contenido del archivo descargado
Stream.Type = 1
Stream.Open
Stream.Write WinHttp.responseBody
Stream.SaveToFile "C:Rutaarchivo.xlsx", 2

' Muestra un mensaje de éxito
MsgBox "Archivo descargado exitosamente."

End Sub
```

Este código utiliza el objeto WinHttp para enviar una solicitud HTTP al servidor y recibir la respuesta. Luego, utiliza el objeto Stream para guardar el contenido del archivo descargado en el disco duro en la ubicación especificada por la variable File. Finalmente, muestra un mensaje de éxito.

Guardar el archivo descargado

Para guardar el archivo descargado en una ubicación específica en el disco duro, puedes utilizar la línea de código:

```vb
Stream.SaveToFile "C:Rutaarchivo.xlsx", 2
```

Debes reemplazar "C:Rutaarchivo.xlsx" con la ruta y el nombre de archivo deseados. Recuerda utilizar la extensión de archivo correcta según el tipo de archivo que estés descargando.

Descargar archivos desde una lista de URLs

Variables y objetos necesarios

Para descargar archivos desde una lista de URLs, necesitarás utilizar las mismas variables y objetos que se mencionaron anteriormente:

  • La variable URL.
  • El objeto WinHttp.
  • El objeto Stream.
  • La variable File.

Asegúrate de asignar el valor correcto a estas variables y objetos antes de ejecutar el código.

Código para descargar archivos desde una lista de URLs

El siguiente ejemplo de código VBA permite descargar los archivos de una lista de URLs:

```vb
Sub DescargarArchivos()

Dim URL As String
Dim WinHttp As Object
Dim Stream As Object
Dim File As String
Dim ListaUrls As Range
Dim Celda As Range

' Rango de celdas que contiene las URLs
Set ListaUrls = Sheets("Hoja1").Range("A1:A10")

' Recorre cada celda del rango
For Each Celda In ListaUrls

' Asigna la URL a la variable URL
URL = Celda.Value

' Crea una instancia del objeto WinHttp
Set WinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

' Abre una conexión HTTP con la URL especificada
WinHttp.Open "GET", URL, False

' Envía la solicitud HTTP al servidor y recibe la respuesta
WinHttp.Send

' Crea una instancia del objeto Stream
Set Stream = CreateObject("ADODB.Stream")

' Configura el objeto Stream para guardar el contenido del archivo descargado
Stream.Type = 1
Stream.Open
Stream.Write WinHttp.responseBody
Stream.SaveToFile "C:Ruta" & Celda.Text

Entradas Relacionadas

Subir

Este sitio web utiliza cookies propias y de terceros para garantizarle la mejor experiencia en nuestro sitio web. Política de Cookies