¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. VBA Excel (versiones 2021 y Microsoft 365)
  3. Internet
Extrait - VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA
Extractos del libro
VBA Excel (versiones 2021 y Microsoft 365) Programar en Excel: Macros y lenguaje VBA Volver a la página de compra del libro

Internet

Consultas por Internet

El siguiente procedimiento inserta en Excel una tabla procedente de un sitio Web:

 Haga clic en el botón images/19CAP12MG01.PNG situado en el botón images/19CAP14MG02.PNG y dentro de la opción  images/19CAP14MG03.PNG del grupo Obtener y transformar de la pestaña Datos.

 Escriba la dirección del sitio web deseado en la zona URL, y a continuación haga clic en Aceptar.

Se muestra la lista de las tablas de la página web.

 Haga clic en la tabla deseada, y a continuación en el desplegable images/19CAP14MG04.PNG situado a la derecha del cuadro de diálogo.

La tabla se carga en una nueva hoja Excel.

Ejemplo:

El siguiente ejemplo importa las cotizaciones de la Bolsa de Valores de Madrid desde la página web http://www.bolsamadrid.es/esp/aspx/Mercados/Precios.aspx?indice=ES100000000

images/12RITEXCV01.png

Resultado en Excel:

images/12RITEXCV02.png

La consulta aparece en el apartado Consultas y conexiones. Puede cambiar el nombre por "Valores" (haciendo clic en el botón derecho y seleccionando la opción Cambiar nombre del menú contextual).

images/12RITEXCV03.png

Puede modificar el nombre de la pestaña y el de la tabla de datos, que también tienen el mismo nombre que la consulta.

El objeto QueryTable

El objeto QueryTable (tabla de consulta) representa la consulta asociada a un rango de datos externos (objeto ListObjet). Estos datos pueden proceder de un origen externo, como una base de datos de Microsoft Access o SQL Server, o de datos extraídos con una consulta web.

1. Propiedades del objeto QueryTable

Propiedades de los datos externos

Ciertas propiedades del objeto QueryTable se corresponden con las opciones del cuadro de diálogo Propiedades de datos externos.

Para mostrar este cuadro:

 Active el rango de datos externo haciendo clic en una de sus celdas.

 Seleccione el comando images/19CAP14MG07.PNG del grupo Conexiones de la pestaña Datos.

Aparece la siguiente ventana:

images/12RITEXCV04.png

N.°

Propiedades

Valores devueltos

1.

RowNumbers

Booleano

2.

AdjustColumnWidth

Booleano

3.

PreserveColumnInfo

Booleano

4.

PreserveFormatting

Booleano

5.

RefreshStyle

Constantes:

xlInsertDeleteCells

xlInsertEntireRows

xlOverwriteCells

La zona Nombre se refiere al objeto ListObject. Ejemplo: ActiveSheet.ListObjects(1).Name.

Propiedades de la consulta

Otras propiedades del objeto QueryTable se corresponden con las opciones del cuadro de diálogo Propiedades de conexión al que podemos acceder a través del comando images/12RITEXCV05.png situado en el grupo Editar de la pestaña Consulta.
images/12RITEXCV06.png

N.°

Propiedades

Valores devueltos

1.

BackgroundQuery

Booleano

2.

RefreshPeriod

Entero largo

3.

RefreshOnFileOpen

Booleano

4.

SaveData

Booleano

Métodos del objeto QueryTable

CancelRefresh...

Publicación de páginas web

Se puede crear una página web en formato html a partir de un libro, de una hoja de cálculo, de un gráfico o de un rango de celdas y actualizar la página al guardar el libro.

Para publicar una página web desde de Excel, siga estas instrucciones:

 Seleccione la opción Guardar de la pestaña Archivo.

 Despliegue las opciones de la lista Tipo y seleccione el tipo de archivo Página web (*.htm; *.html).

 Haga clic en el botón Publicar para seleccionar los elementos que se van a publicar y las opciones de publicación (marque las opciones Volver a publicar automáticamente cada vez que se guarde el libro y Abrir página en el explorador web).

 Haga clic otra vez en el botón Publicar para crear la página web.

La página se creará y aparecerá en su navegador.

En VBA, para asociar un elemento de un libro a una página web, se debe crear un objeto PublishObject (usando el método Add de la colección Publish Objects). Para publicar la página web, luego deberá usar el método Publish del objeto PublishObject.

1. Asociación de un elemento de libro a una página web

Sintaxis

PublishObjects.Add(SourceType, FileName, Sheet, Source, 
HtmlType, DivID, Title) 

Solamente son obligatorios los argumentos SourceType y FileName.

PublishObjects

Expresión...

Los objetos WebOptions y DefaultWebOptions

Los objetos WebOptions y DefaultWebOptions contienen los atributos usados por Excel al guardar un documento como página web.

El objeto DefaultWebOptions contiene las opciones web por defecto de la aplicación Excel: su contenedor es el objeto Application. Las propiedades del objeto corresponden a los atributos accesibles al hacer clic en el botón Opciones web de la categoría Opciones avanzadas de las opciones de Excel. 

El objeto WebOptions contiene las opciones web del libro especificado: su contenedor es el objeto Workbook. Las propiedades del objeto corresponden a los atributos accesibles desde el botón Herramientas/Opciones web al guardar un libro en formato "Página web".

images/12RITEXCV07.png

Ciertas propiedades son comunes a ambos objetos; las demás son específicas al objeto DefaultWebOptions.

1. Propiedades

a. Opciones de la pestaña General

images/CAP12IMG06N.PNG

Propiedades del objeto DefaultWebOptions

1.

SaveHiddenData

Booleano

2.

LoadPictures

Booleano

b. Opciones de la pestaña Exploradores

images/CAP12IMG07N.PNG

Propiedades comunes a ambos objetos

1.

TargetBrowser

Constantes:

msoTargetBrowserIE4 (IE5 o IE6)

msoTargetBrowserV3 (o V4)

2.

AllowPNG

Booleano

3.

RelyOnCSS

Booleano

4.

RelyOnVML

Booleano

Propiedades del objeto DefaultWebOptions

5.

SaveNewWebPagesAsWebArchives

Booleano

c. Opciones de la pestaña Archivos

images/CAP12IMG08N.PNG

Propiedades comunes a ambos objetos

1.

OrganizeInFolder

Booleano

2.

UseLongFileNames

Booleano...

Importar, exportar y asignar archivos XML

El modelo de objeto de Excel XML presentado aquí describe los nuevos objetos que permiten cargar datos en formato XML en los libros de Excel.

images/XLM.PNG

1. Colecciones

ListObjects

Colección de las listas de una hoja de cálculo de Excel. Estas listas pueden contener datos XML.

ListColumns

Colección de las columnas de una lista de Excel.

XmlMaps

Colección de los objetos XML de un libro. Estos objetos se usan para controlar la relación entre los rangos de celdas de Excel y los elementos de un esquema XML.

XmlSchemas

Colección de los esquemas XML contenidos en un objeto XML.

XmlNamespaces

Colección de los espacios de nombres XML incluidos en el libro especificado.

2. Métodos del objeto Workbook

XmlImport

Importa un archivo de datos XML.

Ejemplo:

Sub ImportXML() 
Dim oMapEmpleados As XmlMap 
 
'   Importa el archivo empleados.xml en la hoja activa 
ActiveWorkbook.XmlImport Url:=ActiveWorkbook.Path _ 
    & "\Empleados.xml", ImportMap:=MapEmpleados, _ 
    Overwrite:=True, Destination:=Range("A1") 
oMapEmpleados.Name = "Empleados" 
End Sub 

SaveAsXMLData

Exporta los datos de un objeto XMLMap a un archivo XML.

Ejemplo:

Sub ExportXML() 
 
'    Exporta el XMLMap al archivo Clientes2.xml 
ActiveWorkbook.SaveAsXMLData _ ...

El objeto HyperLink

El objeto HyperLink representa un hipervínculo contenido en una hoja de cálculo, un rango de celdas o un gráfico.

El objeto HyperLink pertenece a la colección HyperLinks de los objetos contenedores Range, Workbook y Chart.

1. Propiedades

Address

Cadena de caracteres. Dirección de la celda que contiene el hipervínculo especificado. 

EmailSubject

Cadena de caracteres. Texto de la línea del asunto del correo electrónico del hipervínculo especificado (propiedad usada con los hipervínculos de los mensajes de correo electrónico).

Name

Cadena de caracteres. Nombre del hipervínculo.

Range

Objeto Range. Rango vinculado al hipervínculo.

ScreenTip

Cadena de caracteres. Texto de la etiqueta informativa del hipervínculo especificado. 

Shape

Objeto Shape. Forma vinculada al hipervínculo especificado.

SubAddress

Cadena de caracteres. Ubicación dentro del documento a la que hace referencia el hipervínculo.

TextToDisplay

Cadena de caracteres. Texto que se mostrará para el hipervínculo especificado.

Type

Entero largo. Tipo del hipervínculo especificado.

2. Métodos

AddToFavorites

Agrega un acceso directo al hipervínculo en la carpeta Favoritos.

CreateNewDocument

Crea un nuevo documento vinculado al hipervínculo especificado.

Delete

Elimina el hipervínculo especificado.

Follow

Carga el documento de destino...

Ejemplo

El siguiente ejemplo permite:

  • suprimir todos los hipervínculos de una hoja de cálculo,

  • añadir un hipervínculo en una celda seleccionada por el usuario,

  • visualizar el documento al que apunta el hipervínculo.

Sub HiperVinculo()   
Dim oShtEmpleados As Worksheet   
Dim oLnk As Hyperlink   
Dim oRng As Range   
    
' Suprime todos los hipervínculos de la hoja de cálculo 
Set oShtEmpleados = ThisWorkbook.Sheets("Empleados")   
For Each oLnk In oShtEmpleados.Hyperlinks   
    oLnk.Delete   
Next oLnk   
    
' Selección de la celda por parte del usuario 
Set oRng = Application.InputBox("Seleccionar la celda 
para el hipervínculo", , , , , , , 8)   
    
' Si se seleccionan varias celdas, solo se tiene en cuenta la primera 
If oRng.Cells.Count > 1 Then   
   Set oRng = oRng.Cells(1, 1)   
End If   
    
' Añade un hipervínculo en la primera celda seleccionada 
oRng.Value = "Enlace en el libro publicado"   
oShtEmpleados.Hyperlinks.Add Anchor:=oRng, Address:="Empleados.html"  
    
' Muestra el documento al que apunta el hipervínculo 
oShtEmpleados.Hyperlinks(1).Follow...