Curso Excel VBA y Macros – Cap. 7 – Modelo de objetos en Excel, propiedades y métodos
Visual Basic para Aplicaciones
El lenguaje de Programación Visual Basic para Aplicaciones o VBA es un lenguaje orientado procedimiento y eventos y tiene la capacidad de interactuar con los objetos en Excel, es decir, en este caso, la aplicación de Excel tendrá distintos objetos con los cuales podremos trabajar usando VBA. Estos objetos, como en la vida real, tendrán propiedades que los describan y métodos que nos indiquen qué son capaces de hacer.
En Excel, algunos objetos serán:
• Archivos
• Hojas
• Celdas
• Gráficos
• Tablas dinámicas
• etc.
Ver video Capítulo 7 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
En la vida real nos encontramos con infinidad de objetos los cuales en sí son parte de una categoría. Por ejemplo, si hablamos de celulares, la categoría podría ser smartphones, que a su vez es una colección de celulares. Cada celular tiene propiedades que los describen, por ejemplo: tamaño de pantalla, peso, color, capacidad de almacenamiento, pixeles de cámara; y también tiene métodos o acciones que puede realizar: hacer llamada, enviar mensajes, navegar por internet, tomar fotos, etc.
Modelo de Objetos en Excel
Cuando hablamos de objetos en Excel podemos decir que cualquier elemento con el que interactuamos es un objeto, por lo tanto podremos tratarlos con el lenguaje VBA. Es importante que tengamos en cuenta que los objetos en Excel tienen un nivel de jerarquía y será importante que la comprendamos al momento de desarrollar macros.
• Application. Este objeto hacer referencia a la aplicación de Excel.
• Workbooks. La colección de libros o archivos hacer referencia a cada uno de los archivos que estén abiertos en un cierto momento en Excel. ThisWorkbook hace referencia al archivo que contiene las macros en ejecución: ActiveWorkbook hace referencia al archivo activo, cuando se tienen más de uno abierto.
• Worksheets o Sheets. Esta colección aloja a todas las hojas que se encuentren de un archivo. Si hacemos referencia a la hoja activa usamos ActiveSheet.
• Range o Cell. Un rango hace referencia a varias celdas. Si hacemos referencia a la celda activa usamos ActiveCell.
Figura 1. Modelo de objetos en Excel. Excel object model.
Si deseamos usar la jerarquía completa para seleccionar la celda A1 de la Hoja1, podemos usar el siguiente código:
Application.ThisWorkbook.Sheets(“Hoja”).Range(“A1”).Select
En la mayoría de los casos no es necesario especificar toda la jerarquía de objetos. Por ejemplo, en el siguiente código elegiremos la celda A1 de la hoja activa, del archivo activo.
Range(“A1”).Select
Ahora bien, si deseamos elegir la celda A1 de la Hoja2 lo hacemos de la siguiente manera, suponiendo que estamos en el archivo adecuado:
Sheets(“Hoja”).Range(“A1”).Select
Colecciones de objetos
Una colección o array es un conjunto de objetos que corresponden a una misma categoría. Como vimos anteriormente, tenemos colecciones de Archivos, Hojas, Gráficos, Tablas dinámicas, etc.
Para hacer referencia a la colección archivos lo podemos hacer de la siguiente manera:
Workbooks(1).Activate
Workbooks(“Archivo.xlsx”).Activate
Para hacer referencia a una hoja de la colección Workbooks o Sheets, lo podemos hacer de la siguiente manera:
Worksheets(1).Select
Worksheets(“Hoja1”).Select
Sheets(1).Select
Sheets(“Hoja”).Select
Y para hacer referencia a celdas o rangos:
ActiveCell.Select
Range(“A1”).Select
Cells(1, 1).Select
Propiedades
Las propiedades son básicamente características que describen a un objeto. Como lo hablamos hace rato, un celular tiene propiedades como tamaño, peso, megapixels en cámara. Hay propiedades que pueden modificarse y otras que no, por ejemplo, en el celular podemos cambiarle el color con un cambio de carcaza, pero la propiedad del modelo o la marca no puede cambiarse.
Figura 2. Propiedades y métodos. Properties and methods.
Por ejemplo, si deseamos mostrar la propiedad Name de la primera hoja:
MsgBox Sheets(1).Name
Ahora bien, si deseamos cambiar el nombre de la primera hoja:
Sheets(1).Name = “HojaUno”
Existen propiedades que son solo lectura, por ejemplo, si deseamos saber cuántas columnas tiene un rango, usamos la propiedad Count, cuyo valor es informativo:
MsgBox Range(“A1:H100”).Columns.Count
Métodos
Los métodos son acciones los objetos pueden realizar o comportamientos que pueden tener. Siguiendo nuestro ejemplo del celular, podemos decir que una acción que puede realizar es Conectar una llamada. Si esta acción la trasladamos a lenguaje de programación VBA, primero especificamos el nombre y luego la acción.
SmarthPhone.MakeCall
Ahora, hablando de Excel si deseamos ejecutar la acción de añadir un comentario a la celda A1:
Range(“A1”).AddComment
Si de archivos hablamos, podemos aplicar la acción de Guardar los cambios.
ThisWorkbook.Save
Los métodos también tienen argumentos. Por ejemplo si deseamos Guardar un archivo con un nuevo nombre, usamos el método SaveAs y los argumentos de FileName y FileFormat, para especificar el nombre nuevo y qué tipo de formato deseamos usar.
ActiveWorkbook.SaveAs Filename:=”Ejemplo.xlsm”, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
La siguiente Tabla nos muestra algunas Propiedades y Métodos de los objetos más importantes en Excel.
OBJETO | PROPIEDADES | MÉTODOS |
Application | · ActiveCell · ActiveSheet · ActiveChart · Addins · ActiveWindow | · Calculate · CheckSpelling · InputBox · OnTime · Run |
Workbook | · ActiveSheet · Sheets · Name · FullName · Path | · Close · Open · Save · SaveAs · PrintOut |
Worksheet | · Name · Tab · Visible · Index · Hyperlinks | · Activate · Copy · Delete · Move · Paste |
Range / Cell | · Address · Rows · Columns · Count · CurrentRegion | · Activate · AutoFit · AutoFilter · Copy · AddCommment |
Obtener Propiedades y Métodos grabando macros
Una de las ventajas de la Grabadora de macros es que podemos generar código VBA cuando nos sabemos los códigos de las propiedades o métodos de los objetos. Te recomiendo grabar las siguientes macros para obtener código VBA:
· Aplicar formato a celdas.
· Insertar y eliminar filas y columnas.
· Guardar un archivo.
· Insertar hojas.
Copiar y pegar valores.
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.