Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Macros y lenguaje VBA
  3. Manipular la aplicación Excel
Extrait - Macros y lenguaje VBA Descubra la programación en Excel (nueva edición)
Extractos del libro
Macros y lenguaje VBA Descubra la programación en Excel (nueva edición) Volver a la página de compra del libro

Manipular la aplicación Excel

Objetivos

Hasta ahora ha visto los objetos más básicos que puede manejar Excel, las celdas. También ha descubierto las hojas y los libros.

El nivel más alto de esta jerarquía es la propia aplicación Excel.

Este capítulo trata las propiedades y los métodos que se pueden utilizar en VBA para configurar la aplicación Excel. También explicará cómo iniciar una nueva aplicación Excel o simplemente salir de ella.

Por último, encontrará algunos ejercicios que le permitirán trabajar sus nuevos conocimientos.

Objeto Application

El objeto Application es el objeto más «alto» en la jerarquía de objetos que puede manipular con Excel. Este objeto VBA representa la propia aplicación Excel, es decir, el programa Excel.exe que se ejecuta en su ordenador.

Tenga en cuenta que este objeto Application también existe en otras aplicaciones de Office/Microsoft 365 (Word, Outlook o Access, por ejemplo). Por lo tanto, si necesita manipular varias aplicaciones en su programa (¡una aplicación Word se puede dirigir desde el código VBA de Excel!), tendrá que hacer preceder el objeto Application con la propia aplicación, Excel.Application.

Declarar la aplicación Excel

Como ha visto en los capítulos anteriores, el primer paso para poder utilizar un objeto a través de una variable es declarar dicha variable. La declaración se hace simplemente así:

Dim xlApp As Application 
'o de otra forma 
Dim xlApp As Excel.Application 

Ejemplo 1: declarar una variable de tipo Application

El simple hecho de declarar una variable de este tipo no es suficiente para tener una nueva aplicación Excel. Primero debe asignar un valor a esta variable para iniciar una nueva aplicación.

Ejecutar una nueva aplicación Excel o usar la actual

Para que la variable que ha declarado sea utilizable, se le debe asignar un valor.

Para ejecutar una nueva aplicación Excel, que se abrirá...

Propiedades del objeto Application

Esta sección le presenta algunas de las muchas propiedades que ofrece el objeto Application

Objetos activos: ActiveAA

Ya sea que se trate de una celda, una hoja o un libro, existe una propiedad para apuntar directamente el objeto activo a partir del objeto Application.

'Obtener el nombre del libro activo 
Debug.Print Application.ActiveWorkbook.Name 
'Obtener el nombre de la hoja activa 
Debug.Print Application.ActiveSheet.Name 
'Obtener la dirección de la celda activa 
Debug.Print Application.ActiveCell.Address 

Ejemplo 6: usar las propiedades Active del objeto Application

Propiedades de despliegue: DisplayAA, Visible

Entre los elementos que Excel despliega, varios pueden ser manipulados a través de instrucciones VBA.

Mensaje de advertencia: DisplayAlerts

Cuando inserte o elimine celdas u hojas, Excel le preguntará si está seguro de querer realizar esta acción.

images/cap16_img_01.png

Esta indicación puede manipularse en VBA utilizando la propiedad DisplayAlerts, que contiene un valor booleano.

'Activar mensaje de alerta 
Application.DisplayAlerts = True 
'Desactivar mensaje de alerta 
Application.DisplayAlerts = False 

Ejemplo 7: activar o desactivar mensajes de alerta de Excel

Mostrar la barra de fórmulas: DisplayFormulaBar

La barra de fórmulas situada debajo de la cinta de opciones de Excel puede hacerse visible o invisible...

Métodos del objeto Application

Muchos de estos métodos ya se han visto en los otros objetos de Excel tratados en los capítulos anteriores. Sin embargo, aquí hay dos métodos que pueden permitirle gestionar sus programas de forma más eficaz.

Navegar en el Explorador de archivos: GetOpenFileName

Cuando quiera dar a un usuario la opción de seleccionar un archivo para abrirlo, Excel mostrará el cuadro de diálogo Abrir para navegar por el Explorador de archivos. Esta interfaz se puede reproducir en VBA utilizando el método GetOpenFileName.

Este método permite recuperar la ruta del archivo que el usuario ha elegido.

La sintaxis general de este método es la siguiente:

Application.GetOpenFileName([FileFilter], [FilterIndex], [Title], 
   [ButtonText], [MultiSelect]) 

Ejemplo 14: sintaxis general del método GetOpenFileName

Los parámetros son opcionales.

FileFilter es una cadena que permite especificar los criterios para filtrar los archivos. En ella indicará las extensiones de archivo que se podrán seleccionar. Si no se da ningún valor, se pueden seleccionar todos los archivos.

'Filtro sobre los archivos de texto o Excel 
Application.GetOpenFilename("Archivos de texto (*.txt),*.txt, 
Archivos Excel(*.xlsx;*.xls;*.xlsm),*.xlsx;*.xls;*.xlsm") 

Ejemplo 15: usar el parámetro FileFilter en GetOpenFileName

Cuando...

Ejercicios

Ejecutar una nueva aplicación Excel

 Cree la macro Capitulo16_Ejercicio1.

Esta macro debe declarar una variable de tipo Excel.Application y abrir una nueva aplicación.

 Ejecute la macro Capitulo16_Ejercicio1 y verifique que se abre una nueva aplicación Excel.

Obtener objetos activos

 Cree la macro Capitulo16_Ejercicio2.

Esta macro mostrará el nombre del libro activo, luego el nombre de la hoja activa y finalmente el valor de la celda activa.

 Introduzca un valor en la celda activa y ejecute la macro (la visualización debe coincidir con los valores esperados).

Recorrer algunos archivos

 Cree la macro Capitulo16_Ejercicio3.

Esta macro deberá mostrar una ventana Abrir (GetOpenFileName), con el título Elija sabiamente. El usuario deberá tener la posibilidad de elegir varios archivos; la extensión de los archivos será *.txt.

Una vez que el usuario haya elegido 0, 1 o más archivos, la macro mostrará Ningún archivo si el usuario ha elegido 0, o mostrará todos los archivos seleccionados mediante un MsgBox.

 Ejecute la macro Capitulo16_Ejercicio3; asegúrese de que su código toma en cuenta los tres casos posibles.