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 iniciar una nueva aplicación Excel. Primero debe asignar un valor a esta variable para iniciarla.
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á además de aquella...
Propiedades del objeto Application
Esta sección le presenta algunas de las muchas propiedades que ofrece el objeto Application.
Objetos activos: ActiveXX
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: DisplayXX, 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.
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 AbrirNuevaAplicacionExcel.
Esta macro debe declarar una variable de tipo Excel.Application y abrir una nueva aplicación.
Ejecute la macro AbrirNuevaAplicacionExcel y verifique que se abre una nueva aplicación Excel.
Obtener objetos activos
Cree la macro MostrarNombresObjetosActivos.
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 MostrarNombreArchivosSeleccionados.
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 MostrarNombreArchivosSeleccionados; asegúrese de que su código toma en cuenta los tres casos posibles.