VBA Formato de Celdas
In this Article
- Formateo de Celdas
- AddIndent (Sangría)
- Borders (Bordes)
- Font (Fuente)
- FormulaHidden (Fórmula Oculta)
- HorizontalAlignment (Alineación Horizontal)
- IndentLevel (Nivel de Sangría)
- Interior
- Locked (Bloqueado)
- MergeCells (Combinar Celdas)
- NumberFormat (Formato Numérico)
- NumberFormatLocal (Formato Numérico Local/Región)
- Orientation (Orientación)
- Parent (Padre)
- ShrinkToFit (Encogerse para Encajar)
- VerticalAlignment (Alineación Vertical)
- WrapText (Envolver el Texto)
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
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
este código de abajo devolverá Nulo en la Ventana Inmediata:
?Worksheets("Hoja1").Range("A1:B1").WrapText