Lección 7: Automatizar los atributos de una celda con macros.

Escrito por Administrador

20 de agosto de 2021

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…). ¡Empezamos!

 

1. Tipo de fuente

Para seleccionar el tipo de fuente en una determinada celda o un rango de celdas, usaremos:

Cells(2,3).Font.Name = "Arial"

O:

Range("A1:C2").Font.Name = "Arial"

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.

Podíamos también haber seleccionado el rango primero, y después haber hecho referencia a la selección, de esta manera:

Cells(2,3).Select

O:

Range("A1:C2").Select

Y después:

Selection.Font.Name = "Arial"

Esto es aplicable a todas las propiedades que veremos a continuación.

 

2. Tamaño de fuente

Para seleccionar el tamaño de la fuente en una determinada celda o un rango de celdas, usaremos:

Cells(2,3).Font.Size = 8

O:

Range("A1:C2").Font.Size = 8

3. Estilo de la fuente

Para seleccionar el aspecto de la fuente (negrita, cursiva o subrayada) en una determinada celda o un rango de celdas, usaremos:

Cells(2,3).Font.Bold = True                         'Activa el aspecto negrita en una celda

Cells(2,3).Font.Bold = False                        'Desactiva el aspecto negrita en una celda

Range("A1:C2").Font.Bold = True                 'Activa el aspecto negrita en un rango de celdas

Range("A1:C2").Font.Bold = False                'Desactiva el aspecto negrita en un rango de celdas

Cells(2,3).Font.Italic = True                        'Activa el aspecto cursiva en una celda

Cells(2,3).Font.Italic = False                       'Desactiva el aspecto cursiva en una celda

Range("A1:C2").Font.Italic = True                 'Activa el aspecto cursiva en un rango de celdas

Range("A1:C2").Font.Italic = False                'Desactiva el aspecto cursiva en un rango de celdas

Cells(2,3).Font.Underline = True                   'Activa el aspecto subrayado en una celda

Cells(2,3).Font.Underline = False                  'Desactiva el aspecto subrayado en una celda

Range("A1:C2").Font.Underline = True            'Activa el aspecto subrayado en un rango de celdas

Range("A1:C2").Font.Underline = False           'Desactiva el aspecto subrayado en un rango de celdas

4. Color de la fuente

Para seleccionar el color de la fuente en una determinada celda o un rango de celdas, usaremos:

Cells(2,3).Font.ColorIndex = 7

O:

Range("A1:C2").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.

Si queremos elegir un color personalizado, usaremos:

Cells(2,3).Font.Color = RGB(230,146,224)

O:

Range("A1:C2").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:

Cells(2,3).Interior.ColorIndex = 3            

O:

Range("A1:C2").Interior.ColorIndex = 3

Si queremos elegir un color personalizado, usaremos:

Cells(2,3).Interior.Color = RGB(253,141,157)

O:

Range("A1:C2").Interior.Color = RGB(253,141,157)

6. Alineación del texto

Para alinear horizontalmente un texto (centro, izquierda, derecha, distribuido y justificado) de una celda o de un rango de celdas, usaremos:

Cells(2,3).HorizontalAlignment = xlCenter         

O:

Range("A1:C2").HorizontalAlignment = xlCenter

Siendo las propiedades: xlCenter, xlLeft, xlRight, xlDistributed y xlJustify.

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

O:

Range("A1:C2").VerticalAlignment = xlCenter

Siendo las propiedades: xlCenter, xlTop, xlBottom, xlDistributed y xlJustify.

 

7. Bordes de celda

Para seleccionar los bordes de celda o rango de celdas, debemos señalar dónde queremos el borde y el estilo de línea del mismo.

Cells(2,3).Borders(xlEdgeBottom).Linestyle = xlContinuous

O:

Range("A1:C2").Borders(xlEdgeBottom).Linestyle = xlContinuous

Siendo las posiciones: 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)

O:

Range("A1:C2").Borders(xlEdgeBottom).Color = RGB(127,200,100)

Y grosor:

Cells(2,3).Borders(xlEdgeBottom).Weight = xlThick

O:

Range("A1:C2").Borders(xlEdgeBottom).Weight = xlThick

Siendo los grosores: xlHairline, xlThin, xlMedium y xlThick.

Si lo que queremos es añadir bordes a todo alrededor de nuestra celda o rango de celdas, usaremos:

Cells(2, 3).BorderAround _
LineStyle:=xlDashDotDot, ColorIndex:=3, Weight:=xlThick

Vamos a consolidar todos estos conceptos con un ejercicio que lo englobe todo.

En primer lugar, crea un libro nuevo, abre el editor VBA, inserta cuatro módulos y copia estas cuatro macros:

 

Macro 1

Sub Leccion7_1()

'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

Sub Leccion7_2()

'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

Sub Leccion7_3()

'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

Sub Leccion7_4()

'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

Crea ahora cuatro botones y asígnales las cuatro macros. Completa la hoja tal y como aparece en la figura.

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.

La cuarta macro devuelve al estado original las celdas de las ciudades para que puedas volver a repetir el proceso cuantas veces quieras.

Date cuenta 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. Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

Descarga el archivo del ejemplo

« L6. Copiar, pegar y borrar celdas con macros.

L8. Agregar/eliminar filas y columnas con macros. »

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto