Как применить границы к ячейке?
Чтобы применить границы к ячейке с помощью VBA в Excel, вы можете использовать два разных метода. Первое — это свойство «Borders», а второе — метод «BorderAround». Единственная разница между этими двумя методами заключается в свойстве «Границы», вы даже можете применить границу к одной стороне ячейки, а граница вокруг нее будет полностью применена к ячейке.
В этом уроке мы рассмотрим оба способа и рассмотрим различные способы добавления границы.
Свойство границы VBA
- Сначала вам нужно указать диапазон или ячейку, к которой вы хотите применить границу, с помощью объекта диапазона.
- После этого введите точку (.), а затем выберите свойство «Границы» из списка свойств и методов.
- Затем укажите индекс границы из доступных констант. Здесь я использую «xlEdgeBottom», чтобы применить границу только к нижней части ячейки.
- Отсюда укажите стиль линии, используя «LineStyle». В качестве стиля линии я использую «xlContinuonus».
Sub vba_borders() Range("A1") _ .Borders(xlEdgeBottom) _ .LineStyle = XlLineStyle.xlContinuous End Sub
Теперь, когда вы запустите этот код, он добавит границу внизу ячейки A1.

Использование разных цветов с помощью Color Index/Color
Точно так же, как вы обычно выбираете цвет границы, когда делаете это вручную. В свойстве border вы также можете использовать индекс цвета и свойство цвета, чтобы использовать цвет, отличный от цвета по умолчанию.
Рассмотрим код ниже.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .Color = RGB(255, 0, 0) End With
Когда вы запускаете этот макрос, он добавляет рамку в нижнюю часть ячейки красного цвета.

Или, если вы хотите использовать свойство colorindex, код будет таким.
With Range("A1").Borders(xlEdgeBottom) .LineStyle = XlLineStyle.xlContinuous .ColorIndex = 7 End With

Связанный: VBA с декларацией
Добавить границу внутри ячейки
Если вы хотите применить границу внутри ячейки, в этом случае вам нужно использовать «xlDiagonalUp» и «xlDiagonalDown» в качестве 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

Когда вы запускаете приведенный выше код, он добавляет границу внутри ячейки вверх и вниз.
Метод VBA BorderAround
В свойстве VBA BorderAround имеется 5 необязательных аргументов, но для правильного применения границы к ячейке необходимо указать два.

Следующий код применяет границу вокруг диапазона A1:A3 при запуске макроса.
Range("A1:A3").BorderAround _ LineStyle:=xlContinuous, _ Weight:=xlThin

Добавьте границу к каждой ячейке в диапазоне
Следующий код проходит через все ячейки диапазона и применяет границу к каждой ячейке одну за другой.
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

Применить границу ко всем ячейкам с текстом
В следующем коде используются FOR LOOP, USED RANGE, IFEMPTY и IF STATEMENT, чтобы применить границы только к тем ячейкам, в которых есть значение.
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
Удалить границы
Просто используйте стиль линии «xlNone».
Range("A1").Borders(xlDiagonalDown).LineStyle = xlNone
А если вы хотите удалить границу со всех ячеек на листе, где есть значение, рассмотрите следующий код.
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
Связанные руководства
- Вставьте строку с помощью VBA в Excel
- Объединить ячейки в Excel с помощью кода VBA
- Выберите диапазон/ячейку с помощью VBA в Excel
- ВЫБЕРИТЕ ВСЕ ячейки на листе с помощью VBA
- ActiveCell в VBA в Excel