La programación de objetos en Excel
Presentación
VBA Excel es un lenguaje de programación orientado a objetos, si bien no dispone de todas las funcionalidades de los lenguajes de este tipo.
La mayoría de los elementos que maneja Excel son objetos: los libros, las hojas de cálculo, los rangos de celdas, las celdas, etc.
Los objetos se organizan según un modelo jerárquico: ciertos objetos contienen otros objetos que pueden, a su vez, contener otros. Estos objetos se llaman contenedor u objetos parent. Por ejemplo, el objeto Application es un contenedor de objetos Workbook (libros abiertos en Excel), que a su vez contiene objetos Worksheet (hojas de cálculo de un libro). El contenedor principal es el objeto Application.
Un conjunto de objetos del mismo tipo constituye una colección (colección Workbooks: conjunto de libros abiertos en Excel; colección Worksheets: conjunto de hojas de cálculo de un libro).
Un objeto dispone de un conjunto de características llamadas propiedades (por ejemplo, para el objeto Application: la propiedad UserName representa el nombre del usuario, la propiedad Version devuelve el número de versión de Microsoft Excel) y de comportamientos o acciones llamados métodos (por ejemplo, para el objeto Application, el método FindFile muestra el cuadro de diálogo Abrir; el método Quit sale de Excel, etc.).
A un objeto le suceden eventos provocados por el usuario (por ejemplo:...
El modelo de objeto de Excel
1. Presentación
2. Principales objetos y colecciones
Objetos
Application
Objeto que hace referencia a la aplicación de Microsoft Excel activa.
AutoCorrect
Objeto que representa los atributos de autocorrección de Microsoft Excel.
AutoRecover
Objeto que representa las opciones de recuperación automática de un libro. Estas macros son accesibles desde Excel a partir de la pestaña Guardar del menú Herramientas - Opciones.
DefaultWebOptions
Objeto que devuelve los atributos usados por Excel para la apertura o grabación de una página web.
ErrorCheckingOptions
Objeto que representa las opciones de comprobación de errores de la aplicación de Excel.
LanguageSettings
Objeto que contiene información sobre la configuración de idioma de Excel.
Speech
Objeto que contiene los métodos y propiedades que se relacionan con las funciones de síntesis de voz.
SpellingOptions
Objeto que representa las opciones de ortografía de la aplicación.
VBE
Objeto que representa al Editor de Visual Basic.
WorkSheetFunction
Objeto que contiene todas las funciones disponibles en Excel. Este objeto permite obtener el resultado de una función aplicada a un rango de celdas. Ejemplo: Prom = Application.WorksheetFunction.Average(Selection)
Colecciones
AddIns
Colección que contiene todos los complementos (objetos AddIn).
COMAddIns
Representa los complementos...
Principios de uso de los objetos y las colecciones
1. Propiedades
Las propiedades sirven para describir un objeto. Ciertas propiedades son de solo lectura y no se pueden, por lo tanto, modificar con el código VBA.
Sintaxis
{<objeto> | <variable objeto>}.<propiedad>
Ejemplo
' Modificación del puntero del ratón
Application.Cursor = xlWait
' Muestra la versión de la aplicación de Excel activa
' Esta propiedad es de solo lectura
MsgBox Application.Version
' Puntero del ratón por defecto
Application.Cursor = xlDefault
2. Propiedades que representan objetos
Los objetos globales y los objetos definidos en el código a través de clases manejadas por VBA tienen ciertas propiedades cuyo valor se actualiza automáticamente por el sistema.
Estas propiedades específicas permiten acceder directamente a ciertos objetos: ventana activa, libro activo, celdas de la hoja activa, etc. La siguiente tabla muestra las propiedades específicas más usadas.
Propiedad |
Objeto Parent |
Objeto devuelto |
ActiveCell |
Application Window |
Objeto Range que representa la primera celda activa de la ventana activa o especificada. |
ActiveChart |
Application Window Workbook |
Objeto Chart que representa el gráfico activo. |
ActiveControl |
Frame Page UserForm |
Objeto Control que representa el control (ActiveX) activo. |
ActivePane |
Window |
Objeto Pane que representa el panel activo de la ventana activa. |
ActiveSheet |
Application Window Workbook |
Objeto Worksheet que representa la hoja activa del libro activo o del libro especificado. |
ActiveWindow |
Application |
Objeto Window que representa la ventana activa. |
ActiveWorkBook |
Application |
Objeto Workbook que representa el libro de la ventana activa. |
Parent |
Objetos múltiples |
Devuelve el objeto contenedor. |
Selection |
Application Windows |
Objeto Range que representa la celda o las celdas seleccionadas. |
ThisCell |
Application |
Devuelve la celda por la que la función definida por el usuario es llamada como objeto Range. |
ThisWorkbook |
Application |
Objeto Workbook que representa el libro sobre el que se ejecuta el código de la macro actual. |
Las propiedades específicas que devuelven un objeto Range (Cells, Offset, Columns, Rows, etc.) se explican en detalle en el capítulo Objetos de Excel....
Instrucciones usadas con los objetos
1. La instrucción With
La instrucción With permite acceder varias veces al mismo objeto, indicándolo una sola vez.
Ofrece varias ventajas:
-
Optimización del tiempo de ejecución del código.
-
Ganar tiempo en la escritura del código.
-
Mejor legibilidad del código.
Sintaxis
With <Objeto>
<código que usa los métodos y propiedades>
<que se relacionan con el objeto>
End With
Ejemplo
Agregar y modificar una hoja de cálculo.
With ActiveWorkbook
' Crea una hoja después de la última hoja del libro activo
.Worksheets.Add , .Worksheets(.Worksheets.Count)
' Modifica el nombre de la nueva hoja y el valor de la celda A1
With .ActiveSheet
.Name = "Síntesis"
.Range("A1") = "Revisión del Presupuesto"
End With
End With
2. La instrucción For Each...Next
La instrucción For Each... Next permite recorrer los objetos de una colección o de una tabla.
Sintaxis
For Each <elemento > In <grupo>
<secuencia de instrucciones>
[Exit For]
<secuencia...
El Examinador de objetos
1. Presentación
Dada la cantidad y diversidad de objetos de Excel, es útil poder encontrar la información que se relaciona con los distintos objetos.
El Examinador de objetos muestra la información relativa a los objetos, métodos, propiedades, eventos y constantes.
Puede acceder al Examinador de objetos de distintas maneras:
Ver - Examinador de objetos o (barra de herramientas Estándar) o [F2].
1. Lista de bibliotecas actualmente cargada.
2. Texto buscado: objeto, propiedad, colección, evento, método, etc.
3. Resultados de la búsqueda: lista de las clases de objetos (objetos y colecciones) y de sus miembros (objeto, colección, propiedad, evento o método). La palabra buscada puede estar en la lista de clases o en la de sus miembros.
4. Clases de objetos de la biblioteca: la clase de objeto seleccionada en la lista Resultados de la búsqueda aparece remarcada.
6. Detalle del elemento seleccionado.
2. Búsqueda en el Examinador de objetos
Para hacer una búsqueda en el Examinador de objetos, proceda de la siguiente manera:
Indique la palabra buscada en la segunda lista desplegable.
Haga clic en el icono . Si la lista Resultados de la búsqueda muestra muchos...