¿cómo aplicar bordes a una celda?
Para aplicar bordes a una celda usando VBA en Excel, puede usar dos métodos diferentes. La primera es la propiedad «Borders» y la segunda es el método «BorderAround». La única diferencia entre estos dos métodos está en la propiedad «Bordes», incluso puede aplicar el borde a un lado de la celda y el borde alrededor se aplica completamente a la celda.
En este tutorial exploraremos ambas formas y veremos cuáles son las diferentes formas de agregar el borde.
Propiedad de borde de VBA
- Primero, debe especificar el rango o celda donde desea aplicar el borde usando el objeto de rango.
- Después de eso, escriba un punto (.) y luego seleccione la propiedad «Bordes» de la lista de propiedades y métodos.
- Luego especifique el índice del borde de los contenidos disponibles. Aquí uso «xlEdgeBottom» para aplicar el borde solo en la parte inferior de la celda.
- Desde allí, especifique el estilo de línea usando «LineStyle». Utilizo «xlContinuonus» como estilo de línea.
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Ahora, cuando ejecute este código, agregará un borde en la parte inferior de la celda A1.
Usar diferentes colores con Color Index/Color
Al igual que normalmente eliges el color del borde cuando lo haces manualmente. En la propiedad de borde, también puede usar el índice de color y la propiedad de color para usar un color distinto al color predeterminado.
Considere el código a continuación.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Cuando ejecuta esta macro, agrega un borde en la parte inferior de la celda con un color rojo.
O si desea utilizar la propiedad colorindex, el código sería así.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With
Relacionado: VBA con Declaración
Agregar un borde dentro de una celda
Si desea aplicar un borde dentro de una celda, en este caso deberá utilizar «xlDiagonalUp» y «xlDiagonalDown» como xlBorderIndex.
With Range("A1").Borders(xlDiagonalUp) .LineStyle = XlLineStyle.xlDashDotDot .Color = RGB(255, 0, 0) End With With Range("A1").Borders(xlDiagonalDown) .LineStyle = XlLineStyle.xlDashDotDot .Color = RGB(255, 0, 0) End With
Cuando ejecuta el código anterior, agrega un borde dentro de la celda hacia arriba y hacia abajo.
Método VBA BorderAround
En la propiedad BorderAround de VBA, tiene 5 argumentos opcionales, pero se deben especificar dos para aplicar correctamente el borde a una celda.
El siguiente código aplica el borde alrededor del rango A1:A3 cuando ejecuta la macro.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin
Agregue un borde a cada celda del rango
El siguiente código recorre todas las celdas del rango y aplica el borde a cada celda una por una.
Sub vba_borders() Dim iRange As Range Dim iCells As Range Set iRange = Range("A1:A10") For Each iCells In iRange iCells.BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin Next iCells End Sub
Aplicar borde a todas las celdas con texto.
El siguiente código utiliza FOR LOOP, USED RANGE, IFEMPTY y IF STATEMENT para aplicar bordes solo a las celdas donde tiene un valor.
Dim iRange As Range Dim iCells As Range Set iRange = ThisWorkbook.ActiveSheet.UsedRange For Each iCells In iRange If Not IsEmpty(iCells) Then iCells.BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin End If Next iCells
Quitar bordes
Simplemente use el estilo de línea «xlNone».
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
Y si desea eliminar el borde de todas las celdas de una hoja de trabajo donde tiene un valor, considere el siguiente código.
Dim iRange As Range Dim iCells As Range Set iRange = ThisWorkbook.ActiveSheet.UsedRange For Each iCells In iRange If Not IsEmpty(iCells) Then iCells.Borders(xlDiagonalDown).LineStyle = xlNone End If Next iCells
Tutoriales relacionados
- Insertar una fila usando VBA en Excel
- Fusionar celdas en Excel usando código VBA
- Seleccione un rango/celda usando VBA en Excel
- SELECCIONE TODAS las celdas en una hoja de trabajo usando VBA
- ActiveCell en VBA en Excel