Como aplicar bordas a uma célula?
Para aplicar bordas a uma célula usando VBA no Excel, você pode usar dois métodos diferentes. A primeira é a propriedade “Borders” e a segunda é o método “BorderAround”. A única diferença entre esses dois métodos está na propriedade “Borders”, você pode até aplicar a borda em um lado da célula e a borda ao redor dela se aplica completamente à célula.
Neste tutorial exploraremos as duas formas e veremos quais são as diferentes maneiras de adicionar a borda.
Propriedade de fronteira VBA
- Primeiro, você precisa especificar o intervalo ou célula onde deseja aplicar a borda usando o objeto range.
- Depois disso, digite um ponto final (.) e selecione a propriedade “Borders” na lista de propriedades e métodos.
- Em seguida, especifique o índice da borda dos contantes disponíveis. Aqui eu uso “xlEdgeBottom” para aplicar a borda apenas na parte inferior da célula.
- A partir daí, especifique o estilo da linha usando “LineStyle”. Eu uso “xlContinuonus” como estilo de linha.
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Agora, quando você executar este código, ele adicionará uma borda na parte inferior da célula A1.
Usando cores diferentes com índice de cores/cor
Assim como você normalmente escolhe a cor da borda quando faz isso manualmente. Na propriedade border, você também pode usar o índice de cores e a propriedade color para usar uma cor diferente da cor padrão.
Considere o código abaixo.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Quando você executa esta macro, ela adiciona uma borda vermelha na parte inferior da célula.
Ou se você quiser usar a propriedade colorindex, o código seria assim.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With
Relacionado: VBA com Declaração
Adicione uma borda dentro de uma célula
Se você deseja aplicar uma borda dentro de uma célula, neste caso você precisa usar “xlDiagonalUp” e “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
Quando você executa o código acima, ele adiciona uma borda dentro da célula para cima e para baixo.
Método VBA BorderAround
Na propriedade BorderAround do VBA, você tem 5 argumentos opcionais, mas dois devem ser especificados para aplicar corretamente a borda a uma célula.
O código a seguir aplica a borda ao redor do intervalo A1:A3 quando você executa a macro.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin
Adicione uma borda a cada célula do intervalo
O código a seguir percorre todas as células do intervalo e aplica a borda a cada célula, uma por uma.
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 borda a todas as células com texto
O código a seguir usa FOR LOOP, USED RANGE, IFEMPTY e IF STATEMENT para aplicar bordas apenas às células onde você tem um 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
Remover bordas
Basta usar o estilo de linha “xlNone”.
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
E se você deseja remover a borda de todas as células de uma planilha onde você possui um valor, considere o código a seguir.
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
Tutoriais relacionados
- Insira uma linha usando VBA no Excel
- Mesclar células no Excel usando código VBA
- Selecione um intervalo/célula usando VBA no Excel
- SELECIONE TODAS as células em uma planilha usando VBA
- ActiveCell em VBA no Excel