VBA Formato de Celdas

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 14, 2022

Este tutorial demostrará cómo dar formato a las celdas utilizando VBA.

Formateo de Celdas

Hay muchas propiedades de formato que se pueden establecer para un (rango de ) celdas como esta:

Sub FormatearCeldas()

    With Worksheets("Hoja1").Range("B5:C7")
     .HorizontalAlignment = xlHAlignDistributed
     .AddIndent = True
     .Font.FontStyle = "Italic"
     .NumberFormat = "General"
     .Interior.Color = RGB(128, 100, 250)
    End With

End Sub

Veámoslas en orden alfabético:

AddIndent (Sangría)

Estableciendo el valor de esta propiedad a True el texto se sangrará automáticamente cuando la alineación del texto en la celda se establezca, ya sea horizontal o verticalmente, a una distribución igual (ver HorizontalAlignment y VerticalAlignment).

    With Worksheets("Hoja1").Range("A1")
        .Orientation = xlVertical
        .VerticalAlignment = xlVAlignDistributed
        .AddIndent = True
    End With

Borders (Bordes)

Puede establecer el formato del borde de una celda. Consulte aquí para obtener más información sobre los bordes. Como ejemplo, puede establecer una línea discontinua roja alrededor de la celda B2 de la Hoja 1 de esta manera:

Worksheets("Hoja1").Range("B2").BorderAround LineStyle:=xlDash, ColorIndex:=3

Font (Fuente)

Puede ajustar el formato de la fuente de la celda estableciendo el nombre de la fuente, el estilo, el tamaño, el color, añadiendo subrayados y/o efectos (tachado, sub o superíndice). Consulte aquí para obtener más información sobre los tipos de letra de las celdas. He aquí algunos ejemplos:

With Range("A1:C5").Font
 .Name = "Century" 
 .FontStyle = "Bold" 
 .Strikethrough = True
End With

FormulaHidden (Fórmula Oculta)

Esta propiedad devuelve o establece un valor de variante que indica si la fórmula se ocultará cuando la hoja de cálculo esté protegida. Por ejemplo:

Worksheets("Hoja1").Range("A1:B1").FormulaHidden = True

HorizontalAlignment (Alineación Horizontal)

Esta propiedad de formato de celda devuelve o establece un valor de variante que representa la alineación horizontal para el objeto especificado. Las constantes devueltas o establecidas pueden ser: xlGeneral, xlCenter, xlDistributed, xlJustify, xlLeft, xlRight, xlFill, xlCenterAcrossSelection. Por ejemplo:

Worksheets("Hoja1").Range("D3").HorizontalAlignment = xlRight

IndentLevel (Nivel de Sangría)

Devuelve o establece un valor entero entre 0 y 15 que representa el nivel de sangría para la celda o rango.

Worksheets("Hoja1").Range("A1").IndentLevel = 7

Interior

Puede establecer u obtener información devuelta sobre el interior de la celda: su Color, ColorIndex, Pattern, PatternColor, PatternColorIndex, PatternThemeColor, PatternTintAndShade, ThemeColor, TintAndShade, así:

If Not Range("A1").Interior.ThemeColor = ThemeColorLight2 Then
   Range("A1").Interior.Pattern = xlPatternUp
End If

Locked (Bloqueado)

Esta propiedad devuelve True si la celda o rango está bloqueado, False si el objeto puede ser modificado cuando la hoja está protegida, o Null si el rango especificado contiene celdas bloqueadas y desbloqueadas. También puede utilizarse para bloquear o desbloquear celdas.

Este ejemplo desbloquea las celdas A1:B2 de la Hoja1 para que puedan ser modificadas cuando la hoja esté protegida.

Worksheets("Hoja1").Range("A1:B2").Locked = False 
Worksheets("Hoja1").Protect

MergeCells (Combinar Celdas)

Establezca esta propiedad a True si necesita combinar un rango. Su valor se convierte en True si el rango especificado contiene celdas combinadas. Por ejemplo, si necesita fusionar el rango de C5:D7, puede utilizar este código:

Worksheets("Hoja1").Range("C5:D7").MergeCells = True

NumberFormat (Formato Numérico)

Puede establecer el formato numérico dentro de la(s) celda(s) a General, Número, Moneda, Contabilidad, Fecha, Hora, Porcentaje, Fracción, Científico, Texto, Especial y Personalizado.

Estos son los ejemplos de los formatos numéricos científico y porcentual:

Range("A1").NumberFormat = "0.00E+00"
Range("B1").NumberFormat = "0.00%"

NumberFormatLocal (Formato Numérico Local/Región)

Esta propiedad devuelve o establece un valor variante que representa el código de formato del objeto como una cadena en el idioma del usuario.

Orientation (Orientación)

Esta propiedad permite establecer (o hacer que se devuelva) la orientación del texto dentro de la(s) celda(s). Su valor puede ser una de estas constantes: xlDownward, xlHorizontal, xlUpward, xlVertical o un valor entero de -90 a 90 grados.

Worksheets("Hoja1").Range("A1").Orientation = -60

Parent (Padre)

Esta es una propiedad de sólo lectura que devuelve el objeto padre de un objeto especificado.

ShrinkToFit (Encogerse para Encajar)

Esta propiedad devuelve o establece un valor variante que indica si el texto se encoge automáticamente para ajustarse al ancho de columna disponible.

Worksheets("Hoja1").Range("A1").ShrinkToFit = True

VerticalAlignment (Alineación Vertical)

Esta propiedad de formato de celda devuelve o establece un valor variante que representa la alineación vertical para el objeto especificado. Las constantes devueltas o establecidas pueden ser: xlCenter, xlDistributed, xlJustify, xlBottom, xlTop. Por ejemplo:

Worksheets("Hoja1").Range("A1").VerticalAlignment = xlTop

WrapText (Envolver el Texto)

Esta propiedad devuelve True si el texto se envuelve en todas las celdas del rango especificado, False si el texto no se envuelve en todas las celdas del rango especificado, o Null si el rango especificado contiene algunas celdas que envuelven texto y otras que no.

Por ejemplo, si tiene este rango de celdas

WrapText Envolver Texto

este código de abajo devolverá Nulo en la Ventana Inmediata:

?Worksheets("Hoja1").Range("A1:B1").WrapText
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples