Curso Excel VBA y Macros – Cap. 10 – Propiedades más usadas para trabajar con rangos de celdas
Siguiendo con este maravilloso curso de Macros en Excel, ahora nos toca abordar el tema de las Propiedades y Métodos para rangos y celdas que más se usan, o por lo menos las que más uso conforme a mi experiencia de años de usar VBA.
En el capítulo anterior vimos Cómo hacer referencia a rangos y celdas con VBA, incluso vimos algunas propiedades y métodos. Hicimos referencias usando el objeto Range y la propiedad Cells, dando coordenadas de filas y columnas a este último.
Ver video Capítulo 10 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
ActiveCell (Celda activa)
Usamos la propiedad ActiveCell para referirnos a la celda activa. Es importante mencionar que será la celda activa ubicada en el archivo y la hoja activos. Si tenemos varios archivos abiertos o uno con varias hojas, será importante confirmar que estamos trabajando en la hoja correcta.
Selection
La propiedad Selection puede aplicarse a cualquier objeto seleccionado, desde un rango de celdas, hasta imágenes.
Propiedades de rangos y celdas
Recordemos que las propiedades son características que describen a los objetos y los objetos en VBA pueden ser rangos de celdas, hojas, archivos, gráficos, etc.
Las propiedades en VBA pueden ser de 3 tipos, solo lectura, solo escritura o lectura escritura. En la siguiente tabla vemos las propiedades más usadas para rangos de celdas.
NOMBRE | DESCRIPCIÓN | TIPO |
Address | Devuelve la referencia a un rango de celdas | Sólo lectura |
Columns | Devuelve las columnas de un rango | Sólo lectura |
Rows | Devuelva la filas de un rango | Sólo lectura |
Count | Devuelve el conteo de celdas de un rango. Aplica para columnas y filas | Sólo lectura |
CurrentRegion | Región activa con respecto a un rango. De manera manual lo obtenemos usando Control + Shift + Espacio | Sólo lectura |
EntireRow | Hace referencia a una fila completa | Sólo lectura |
EntireColumn | Hace referencia a una columna completa | Sólo lectura |
Font | Permite leer o modificar el formato de celdas | Lectura / escritura |
Formula | Devuelve o escribe fórmulas de celdas. Debemos usar el nombre de funciones en Inglés | Lectura / escritura |
FormulaLocal | Podemos asignarle una fórmula a las celdas en el idioma configurado en la PC | Lectura / escritura |
HasFormula | Devuelve VERDADERO si la celda contiene una fórmula | Sólo lectura |
Interior | Permite formatear el fondo de un rango de celdas | Lectura / escritura |
NumberFormat | Permite asignar un formato de número a un rango celdas | Lectura / escritura |
Offset | Nos permite desplazarnos n cantidad de filas o columnas. DESREF en Excel | Lectura / escritura |
Resize | Permite cambiar el tamaño de una rango | Sólo lectura |
Value | Devuelve o escribe un valor en un rango de celdas | Lectura / escritura |
Address. Devolvemos la dirección de un rango. En este caso devolveremos la referencia de la propiedad Selection.
MsgBox Application.Selection.Address
Columns, Rows. Haremos un conteo de filas y columnas, aplicando la propiedad Count.
MsgBox Range(“A1:D2”).Columns.Count
MsgBox Range(“A1:D2”).Rows.Count
Count. Devolveremos un conteo de celdas en un rango.
MsgBox Range(“A1:D2”).Count
CurrentRegion. Mostraremos la dirección del rango actual en base a la celda A1.
MsgBox Range(“A1”).CurrentRegion.Address
EntireRow y EntireColumn. Insertaremos y eliminaremos filas y columnas completas
Range(“F1”).EntireColumn.Insert
Range(“F1”).EntireColumn.Delete
Range(“F1”).EntireRow.Insert
Range(“F1”).EntireRow.Delete
Font. Le cambiamos la fuente a una celda.
Cells(1,1).Font.Size = 20
Cells(1,1).Font.Name = Arial
Formula. Le asignamos una fórmula a un rango de celdas. Los nombres de las funciones deber ser en Ingles.
Range(“A1:A10”).Formula = “=SUM(10,20)”
FormulaLocal. Insertaremos una fórmula en un rango de celdas expresada en el idioma la de la PC, en este caso español.
Range(“B1:B10”).FormulaLocal = “=SUMA(10,20)”
HasFormula. Esta propiedad nos devuelve VERDADERO si el rango contiene una fórmula, de lo contrario devuelve FALSO.
MsgBox Range(“A1”).HasFormula
Interior. Le asignaremos color azul a un rango de celdas expresadas con la propiedad vbBlue.
Range(Cells(1, 1), Cells(5, 5)).Interior.Color = VBA.vbBlue
NumberFormat. Cambiamos formato de texto a una celda, le asignaremos formato de fecha.
Range(“A1”).NumberFormat = “yyyy/mm/dd”
Offset. Activaremos un rango en referencia a la celda A1. Nos moveremos 10 filas hacia abajo y 10 columnas hacia la derecha.
Range(“A1”).Offset(10, 10).Select
Resize. Tenemos un rango de 10 filas y 10 columnas, le cambiaremos el tamaño y le asignaremos un color de fondo.
Range(“A1:B10”).Resize(5, 5).Interior.Color = RGB(200, 150, 109)
Value. Vamos a mostrar un valor de una celda.
MsgBox Range(“A1”).Value
EJEMPLOS
En este ejemplo le pondremos color verde a los encabezados de una tabla.
Sub Encabezado()
Dim razgo As Range Set rango = Range("a1").CurrentRegion 'rango.Resize(1, rango.Columns.Count).Select 'rango.Resize(1, rango.Columns.Count).Interior.Color = VBA.vbGreen End Sub
Y ahora le ponemos un color amarillo al cuerpo de la tabla.
Sub CuerpoTabla() Dim rango As Range Set rango = Range("a1").CurrentRegion 'Range("A1").Offset(1, 0).Resize(rango.Rows.Count - 1, rango.Columns.Count).Select 'Range("A1").Offset(1, 0).Resize(rango.Rows.Count - 1, rango.Columns.Count).Interior.Color = VBA.vbYellow End Sub
Usaremos la siguiente instrucción para borrar formatos de las celdas.
Range(“a1”).CurrentRegion.ClearFormats
Descargar archivo de ejemplo
010 – Propiedades más usadas en rangos de celdas.zip
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.