En esta lección, vas a aprender a personalizar de manera automática el aspecto de una celda: tipo de fuente, color del texto, alineación, color de fondo, bordes…), es decir, a automatizar el formato de una celda con macros.
Antes de empezar, te dejo un enlace donde explico cómo configurar Microsoft Excel para el uso de macros, por si aún no lo has hecho.
¡Empezamos!
1. Tipo de fuente.
Para seleccionar el tipo de fuente en una determinada celda usaremos:
Sin embargo, si se trata de un rango de celdas usaremos:
El tipo "Arial" puede ser sustituido por el nombre del tipo de letra que queramos utilizar, siempre y cuando aparezcan en el listado del menú Inicio de Microsoft Excel.
De manera similar, podíamos también haber seleccionado primero el rango, y después haber hecho referencia a la selección, de esta manera:
Cells(2,3).Select
Y, si se trata de un rango:
Y después:
Además, esto es aplicable a todas las propiedades que veremos a continuación.
2. Tamaño de fuente.
Si queremos seleccionar el tamaño de la fuente, usaremos las siguientes sintaxis, dependiendo de si se trata de una celda o un rango de ellas:
Cells(2,3).Font.Size = 8
3. Estilo de la fuente.
Así mismo, podemos seleccionar el aspecto de la fuente (negrita, cursiva o subrayada) en una determinada celda o un rango de celdas, usando:
Cells(2,3).Font.Bold = False 'Desactiva el aspecto negrita en una celda
Range("A1:C2").Font.Bold = False 'Desactiva el aspecto negrita en un rango de celdas
Cells(2,3).Font.Italic = False 'Desactiva el aspecto cursiva en una celda
Range("A1:C2").Font.Italic = False 'Desactiva el aspecto cursiva en un rango de celdas
Cells(2,3).Font.Underline = False 'Desactiva el aspecto subrayado en una celda
Range("A1:C2").Font.Underline = False 'Desactiva el aspecto subrayado en un rango de celdas
4. Color de la fuente.
Otra característica del formato de una celda que podemos cambiar usando macros es el color de la fuente. Para cambiarlo en una determinada celda o un rango de ellas, usaremos:
Cells(2,3).Font.ColorIndex = 7
El número hace referencia a la paleta de colores de abajo. Así, en el ejemplo anterior, habríamos elegido un color de texto rosa.
Sin embargo, si queremos elegir un color personalizado, usaremos:
Cells(2,3).Font.Color = RGB(230,146,224)
5. Color de la celda.
Para seleccionar un color de celda o rango de celdas de la paleta anterior, usaremos la sintaxis que corresponda:
Cells(2,3).Interior.ColorIndex = 3
En cambio, para elegir un color personalizado, usaremos:
Cells(2,3).Interior.Color = RGB(253,141,157)
6. Alineación del texto.
La manera de alinear horizontalmente un texto (centro, izquierda, derecha, distribuido y justificado) de una celda o de un rango de celdas, es la siguiente:
Cells(2,3).HorizontalAlignment = xlCenter
Estas son sus propiedades: xlCenter, xlLeft, xlRight, xlDistributed y xlJustify.
Por otro lado, para alinear verticalmente un texto (centro, arriba, abajo distribuido y justificado) de una celda o de un rango de celdas, usaremos:
Cells(2,3).VerticalAlignment = xlCenter
Siendo las propiedades: xlCenter, xlTop, xlBottom, xlDistributed y xlJustify.
7. Bordes de celda.
Finalmente, la última característica del formato de una celda que podemos modificar usando macros son sus bordes. Para modificarlos, debemos señalar dónde queremos el borde y el estilo de línea del mismo.
Cells(2,3).Borders(xlEdgeBottom).Linestyle = xlContinuous
Las posibles posiciones son las siguientes: xlNone, xlEdgeBottom, xlEdgeTop, xlEdgeLeft, xlEdgeRight, xlDiagonalDown, xlDiagonalUp, xlInsideVertical y xlInsideHorizontal.
Y los tipos de línea: xlContinuous, xlDash, xlDashDot, xlDashDotDot, xlDot, xlDouble y xlSlantDashDot.
También, podemos añadir a las líneas de borde atributos de color,
Cells(2,3).Borders(xlEdgeBottom).Color = RGB(127,200,100)
Así como, grosor:
Cells(2,3).Borders(xlEdgeBottom).Weight = xlThick
Estos son los grosores disponibles: xlHairline, xlThin, xlMedium y xlThick.
Si lo que queremos es añadir bordes a todo alrededor de nuestra celda o rango de celdas, usaremos:
LineStyle:=xlDashDotDot, ColorIndex:=3, Weight:=xlThick
Vamos a consolidar todos estos conceptos con un ejercicio que englobe todos los cambios de formato de una celda usando macros.
En primer lugar, crea un libro nuevo, abre el editor VBA, inserta cuatro módulos y copia estas cuatro macros:
Macro 1. Cambiar el formato a una celda.
'Macro que configura la celda I3 de la siguiente manera: Fuente tipo Arial, tamaño 8, en negrita, color texto rojo, color celda amarillo, alineación horizontal izquierda, alineación vertical arriba, borde completo fino discontinuo de color rojo
Cells(3, "I").Font.Name = "Arial" 'Tipo letra Arial
Cells(3, "I").Font.Size = 8 'Tamaño letra 8
Cells(3, "I").Font.Bold = True 'Negrita
Cells(3, "I").Font.ColorIndex = 3 'Color texto rojo
Cells(3, "I").Interior.ColorIndex = 6 'Color de celda amarillo
Cells(3, "I").HorizontalAlignment = xlLeft 'Alineación horizontal a la izquierda
Cells(3, "I").VerticalAlignment = xlTop 'Alineación vertical arriba
Cells(3, "I").BorderAround _
LineStyle:=xlDashDotDot, ColorIndex:=3, Weight:=xlThick 'Borde completo fino discontinuo rojo
End Sub
Macro 2. Cambiar el formato a una celda.
'Macro que configura la celda I5 de la siguiente manera: Fuente tipo Calibri, tamaño 12, en cursiva, color texto azul, color celda naranja, alineación horizontal derecha, alineación vertical abajo, borde inferior continuo ancho azul
Cells(5, "I").Font.Name = "Calibri" 'Tipo letra Calibri
Cells(5, "I").Font.Size = 12 'Tamaño letra 12
Cells(5, "I").Font.Italic = True 'Cursiva
Cells(5, "I").Font.ColorIndex = 5 'Color texto azul
Cells(5, "I").Interior.ColorIndex = 46 'Color de celda naranja
Cells(5, "I").HorizontalAlignment = xlRight 'Alineación horizontal a la derecha
Cells(5, "I").VerticalAlignment = xlBottom 'Alineación vertical abajo
Cells(5, "I").Borders(xlBottom).LineStyle = xlContinuous 'Borde inferior continuo
Cells(5, "I").Borders(xlBottom).Weight = xlThick 'Borde inferior ancho
Cells(5, "I").Borders(xlBottom).ColorIndex = 5 'Borde inferior continuo ancho azul
End Sub
Macro 3. Cambiar el formato a una celda.
'Macro que configura la celda I7 de la siguiente manera: Fuente tipo Times New Roman, tamaño 20, subrayada, color texto blanco, color celda rosa, alineación horizontal al centro, alineacion vertical al centro, bordes izquierdo y derecho continuos
Cells(7, "I").Font.Name = "Times New Roman" 'Tipo letra Times New Roman
Cells(7, "I").Font.Size = 20 'Tamaño letra 20
Cells(7, "I").Font.Underline = True 'Subrayada
Cells(7, "I").Font.ColorIndex = 2 'Color texto blanco
Cells(7, "I").Interior.ColorIndex = 7 'Color de celda rosa
Cells(7, "I").HorizontalAlignment = xlCenter 'Alineación horizontal al centro
Cells(7, "I").VerticalAlignment = xlCenter 'Alineación vertical al centro
Cells(7, "I").Borders(xlLeft).LineStyle = xlContinuous 'Borde izquierdo continuo
Cells(7, "I").Borders(xlLeft).Weight = xlThick 'Borde izquierdo ancho
Cells(7, "I").Borders(xlRight).LineStyle = xlContinuous 'Borde derecho continuo
Cells(7, "I").Borders(xlRight).Weight = xlThick 'Borde derecho ancho
End Sub
Macro 4. Cambiar el formato a una celda.
'Macro que vuelve a la configuración inicial el rango de celdas I3-I7: Fuente tipo Calibri, tamaño 11, color texto negro, color celda blanco, alineación horizontal al centro, alineacion vertical al centro, sin bordes
Range("I3:I7").Font.Name = "Calibri" 'Tipo letra Calibri
Range("I3:I7").Font.Size = 11 'Tamaño letra 20
Range("I3:I7").Font.Bold = False 'Sin negrita
Range("I3:I7").Font.Italic = False 'Sin cursiva
Range("I3:I7").Font.Underline = False 'Sin subrayar
Range("I3:I7").Font.ColorIndex = 1 'Color texto negro
Range("I3:I7").Interior.ColorIndex = 2 'Color de celda blanco
Range("I3:I7").HorizontalAlignment = xlCenter 'Alineación horizontal al centro
Range("I3:I7").VerticalAlignment = xlCenter 'Alineación vertical al centro
Range("I3:I7").Borders.LineStyle = xlNone 'Sin bordes
Range("I3:I7").Interior.Pattern = xlNone 'Restablecer la cuadrícula de la hoja excel
Range("I3:I7").Interior.TintAndShade = 0
Range("I3:I7").Interior.PatternTintAndShade = 0
End Sub
Seguidamente, crea cuatro botones y asígnales las cuatro macros. Completa la hoja tal y como aparece en la figura.
Finalmente, ejecuta las tres primeras macros. Verás que las celdas de las tres ciudades se configuran tal y como queríamos.
Todo esto alcanzará su sentido cuando veamos los condicionales, y podamos asignar distintos formatos a las celdas en función de sus propios valores o de los de otras celdas.
Finalmente, indicar que la cuarta macro devuelve al estado original las celdas de las ciudades para que puedas volver a repetir el proceso cuantas veces quieras.
También, quiero que seas consciente de que en las tres primeras macros trabajamos con celdas y en la cuarta, trabajamos con rangos.
Con esto llegamos al final de la séptima lección, en la que has aprendido cómo modificar el formato de una celda usando macros.
Espero que te esté gustando el curso. Si quieres, puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Nos vemos en el próximo capítulo.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
« L6. Copiar, pegar y borrar celdas con macros.
L8. Agregar/eliminar filas y columnas con macros. »
0 comentarios